[OCaml] Move Llvm.clone_module to its own Llvm_transform_utils module.
[oota-llvm.git] / docs / CMakeLists.txt
index 505b5dbe939a89248f71ecf0ff996992500295f8..da27627f07e9be8e4138a6dc9afa64440c11745f 100644 (file)
@@ -1,8 +1,4 @@
 
-if (LLVM_BUILD_DOCS)
-  set(LLVM_DOCS_ADD_TO_ALL ALL)
-endif()
-
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
   set(abs_top_srcdir ${LLVM_MAIN_SRC_DIR})
@@ -11,17 +7,81 @@ if (LLVM_ENABLE_DOXYGEN)
   if (HAVE_DOT)
     set(DOT ${LLVM_PATH_DOT})
   endif()
+
+  if (LLVM_DOXYGEN_EXTERNAL_SEARCH)
+    set(enable_searchengine "YES")
+    set(searchengine_url "${LLVM_DOXYGEN_SEARCHENGINE_URL}")
+    set(enable_server_based_search "YES")
+    set(enable_external_search "YES")
+    set(extra_search_mappings "${LLVM_DOXYGEN_SEARCH_MAPPINGS}")
+  else()
+    set(enable_searchengine "NO")
+    set(searchengine_url "")
+    set(enable_server_based_search "NO")
+    set(enable_external_search "NO")
+    set(extra_search_mappings "")
+  endif()
+  
+  # If asked, configure doxygen for the creation of a Qt Compressed Help file.
+  option(LLVM_ENABLE_DOXYGEN_QT_HELP
+    "Generate a Qt Compressed Help file." OFF)
+  if (LLVM_ENABLE_DOXYGEN_QT_HELP)
+    set(LLVM_DOXYGEN_QCH_FILENAME "org.llvm.qch" CACHE STRING
+      "Filename of the Qt Compressed help file")
+    set(LLVM_DOXYGEN_QHP_NAMESPACE "org.llvm" CACHE STRING 
+      "Namespace under which the intermediate Qt Help Project file lives")
+    set(LLVM_DOXYGEN_QHP_CUST_FILTER_NAME "${PACKAGE_STRING}" CACHE STRING
+      "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters")
+    set(LLVM_DOXYGEN_QHP_CUST_FILTER_ATTRS "${PACKAGE_NAME},${PACKAGE_VERSION}" CACHE STRING
+      "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes")
+    find_program(LLVM_DOXYGEN_QHELPGENERATOR_PATH qhelpgenerator 
+      DOC "Path to the qhelpgenerator binary")
+    if (NOT LLVM_DOXYGEN_QHELPGENERATOR_PATH)
+      message(FATAL_ERROR "Failed to find qhelpgenerator binary")
+    endif()
+
+    set(llvm_doxygen_generate_qhp "YES")
+    set(llvm_doxygen_qch_filename "${LLVM_DOXYGEN_QCH_FILENAME}")
+    set(llvm_doxygen_qhp_namespace "${LLVM_DOXYGEN_QHP_NAMESPACE}")
+    set(llvm_doxygen_qhelpgenerator_path "${LLVM_DOXYGEN_QHELPGENERATOR_PATH}")
+    set(llvm_doxygen_qhp_cust_filter_name "${LLVM_DOXYGEN_QHP_CUST_FILTER_NAME}")
+    set(llvm_doxygen_qhp_cust_filter_attrs "${LLVM_DOXYGEN_QHP_CUST_FILTER_ATTRS}")
+
+  else()
+    set(llvm_doxygen_generate_qhp "NO")
+    set(llvm_doxygen_qch_filename "")
+    set(llvm_doxygen_qhp_namespace "")
+    set(llvm_doxygen_qhelpgenerator_path "")
+    set(llvm_doxygen_qhp_cust_filter_name "")
+    set(llvm_doxygen_qhp_cust_filter_attrs "")
+  endif()
   
   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in
     ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY)
+
   set(abs_top_srcdir)
   set(abs_top_builddir)
   set(DOT)
+  set(enable_searchengine)
+  set(searchengine_url)
+  set(enable_server_based_search)
+  set(enable_external_search)
+  set(extra_search_mappings)
+  set(llvm_doxygen_generate_qhp)
+  set(llvm_doxygen_qch_filename)
+  set(llvm_doxygen_qhp_namespace)
+  set(llvm_doxygen_qhelpgenerator_path)
+  set(llvm_doxygen_qhp_cust_filter_name)
+  set(llvm_doxygen_qhp_cust_filter_attrs)
 
-  add_custom_target(doxygen ${LLVM_DOCS_ADD_TO_ALL}
+  add_custom_target(doxygen-llvm
     COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-    COMMENT "Generating doxygen documentation." VERBATIM)
+    COMMENT "Generating llvm doxygen documentation." VERBATIM)
+
+  if (LLVM_BUILD_DOCS)
+    add_dependencies(doxygen doxygen-llvm)
+  endif()
 
   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
     install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
@@ -29,3 +89,61 @@ if (LLVM_ENABLE_DOXYGEN)
   endif()
 endif()
 endif()
+
+if (LLVM_ENABLE_SPHINX)
+  if (SPHINX_FOUND)
+    include(AddSphinxTarget)
+    if (${SPHINX_OUTPUT_HTML})
+      add_sphinx_target(html llvm)
+    endif()
+
+
+    if (${SPHINX_OUTPUT_MAN})
+      add_sphinx_target(man llvm)
+    endif()
+
+  endif()
+endif()
+
+list(FIND LLVM_BINDINGS_LIST ocaml uses_ocaml)
+if( NOT uses_ocaml LESS 0 )
+  set(doc_targets
+        ocaml_llvm
+        ocaml_llvm_all_backends
+        ocaml_llvm_analysis
+        ocaml_llvm_bitreader
+        ocaml_llvm_bitwriter
+        ocaml_llvm_executionengine
+        ocaml_llvm_irreader
+        ocaml_llvm_linker
+        ocaml_llvm_target
+        ocaml_llvm_ipo
+        ocaml_llvm_passmgr_builder
+        ocaml_llvm_scalar_opts
+        ocaml_llvm_transform_utils
+        ocaml_llvm_vectorize
+      )
+
+  foreach(llvm_target ${LLVM_TARGETS_TO_BUILD})
+    list(APPEND doc_targets ocaml_llvm_${llvm_target})
+  endforeach()
+
+  set(odoc_files)
+  foreach( doc_target ${doc_targets} )
+    get_target_property(odoc_file ${doc_target} OCAML_ODOC)
+    list(APPEND odoc_files -load ${odoc_file})
+  endforeach()
+
+  add_custom_target(ocaml_doc
+    COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
+    COMMAND ${OCAMLFIND} ocamldoc -d ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
+                                  -sort -colorize-code -html ${odoc_files})
+
+  add_dependencies(ocaml_doc ${doc_targets})
+
+  if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
+      DESTINATION docs/ocaml/html)
+  endif()
+endif()