Browse Source

[doxygen] Added code for generating doxygen documentation for clang for cmake.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189508 91177308-0d34-0410-b5e6-96231b3b80d8
Michael Gottesman 12 years ago
parent
commit
1ab6c6c80b
2 changed files with 37 additions and 2 deletions
  1. 6 2
      CMakeLists.txt
  2. 31 0
      docs/CMakeLists.txt

+ 6 - 2
CMakeLists.txt

@@ -335,13 +335,17 @@ option(CLANG_INCLUDE_TESTS
        "Generate build targets for the Clang unit tests."
        "Generate build targets for the Clang unit tests."
        ${LLVM_INCLUDE_TESTS})
        ${LLVM_INCLUDE_TESTS})
 
 
-# TODO: docs.
-
 if( CLANG_INCLUDE_TESTS )
 if( CLANG_INCLUDE_TESTS )
   add_subdirectory(test)
   add_subdirectory(test)
   add_subdirectory(unittests)
   add_subdirectory(unittests)
 endif()
 endif()
 
 
+option(CLANG_INCLUDE_DOCS "Generate build targets for the Clang docs."
+  ${LLVM_INCLUDE_DOCS})
+if( CLANG_INCLUDE_DOCS )
+  add_subdirectory(docs)
+endif()
+
 # Workaround for MSVS10 to avoid the Dialog Hell
 # Workaround for MSVS10 to avoid the Dialog Hell
 # FIXME: This could be removed with future version of CMake.
 # FIXME: This could be removed with future version of CMake.
 if( CLANG_BUILT_STANDALONE AND MSVC_VERSION EQUAL 1600 )
 if( CLANG_BUILT_STANDALONE AND MSVC_VERSION EQUAL 1600 )

+ 31 - 0
docs/CMakeLists.txt

@@ -0,0 +1,31 @@
+
+if (DOXYGEN_FOUND)
+if (LLVM_ENABLE_DOXYGEN)
+  set(abs_srcdir ${LLVM_MAIN_SRC_DIR})
+  set(abs_builddir ${LLVM_BINARY_DIR})
+
+  if (HAVE_DOT)
+    set(DOT ${LLVM_PATH_DOT})
+  endif()
+
+  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in
+    ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY)
+  set(abs_srcdir)
+  set(abs_builddir)
+  set(DOT)
+
+  add_custom_target(doxygen-clang
+    COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+    COMMENT "Generating clang doxygen documentation." VERBATIM)
+
+  if (LLVM_BUILD_DOCS)
+    add_dependencies(doxygen doxygen-clang)
+  endif()
+
+  if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
+      DESTINATION docs/html)
+  endif()
+endif()
+endif()