if(DOXYGEN_FOUND)if(LLVM_ENABLE_DOXYGEN)set(abs_top_srcdir${CMAKE_CURRENT_SOURCE_DIR})set(abs_top_builddir${CMAKE_CURRENT_BINARY_DIR})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"CACHESTRING"Filename of the Qt Compressed help file")set(LLVM_DOXYGEN_QHP_NAMESPACE"org.llvm"CACHESTRING"Namespace under which the intermediate Qt Help Project file lives")set(LLVM_DOXYGEN_QHP_CUST_FILTER_NAME"${PACKAGE_STRING}"CACHESTRING"See http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters")set(LLVM_DOXYGEN_QHP_CUST_FILTER_ATTRS"${PACKAGE_NAME},${PACKAGE_VERSION}"CACHESTRING"See http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes")find_program(LLVM_DOXYGEN_QHELPGENERATOR_PATHqhelpgeneratorDOC"Path to the qhelpgenerator binary")if(NOTLLVM_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()option(LLVM_DOXYGEN_SVG"Use svg instead of png files for doxygen graphs."OFF)if(LLVM_DOXYGEN_SVG)set(DOT_IMAGE_FORMAT"svg")else()set(DOT_IMAGE_FORMAT"png")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)set(DOT_IMAGE_FORMAT)add_custom_target(doxygen-llvmCOMMAND${DOXYGEN_EXECUTABLE}${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfgWORKING_DIRECTORY${CMAKE_CURRENT_BINARY_DIR}COMMENT"Generating llvm doxygen documentation."VERBATIM)if(LLVM_BUILD_DOCS)add_dependencies(doxygendoxygen-llvm)endif()if(NOTLLVM_INSTALL_TOOLCHAIN_ONLY)# ./ suffix is needed to copy the contents of html directory without# appending html/ into LLVM_INSTALL_DOXYGEN_HTML_DIR.install(DIRECTORY${CMAKE_CURRENT_BINARY_DIR}/doxygen/html/.COMPONENTdoxygen-htmlDESTINATION"${LLVM_INSTALL_DOXYGEN_HTML_DIR}")endif()endif()endif()if(LLVM_ENABLE_SPHINX)include(AddSphinxTarget)if(SPHINX_FOUND)if(${SPHINX_OUTPUT_HTML})add_sphinx_target(htmlllvm)endif()if(${SPHINX_OUTPUT_MAN})add_sphinx_target(manllvm)add_sphinx_target(manllvm-dwarfdump)add_sphinx_target(mandsymutil)endif()endif()endif()list(FINDLLVM_BINDINGS_LISTocamluses_ocaml)if(NOTuses_ocamlLESS0ANDLLVM_ENABLE_OCAMLDOC)set(doc_targetsocaml_llvmocaml_llvm_all_backendsocaml_llvm_analysisocaml_llvm_bitreaderocaml_llvm_bitwriterocaml_llvm_executionengineocaml_llvm_irreaderocaml_llvm_linkerocaml_llvm_targetocaml_llvm_ipoocaml_llvm_passmgr_builderocaml_llvm_scalar_optsocaml_llvm_transform_utilsocaml_llvm_vectorize)foreach(llvm_target${LLVM_TARGETS_TO_BUILD})list(APPENDdoc_targetsocaml_llvm_${llvm_target})endforeach()set(odoc_files)foreach(doc_target${doc_targets})get_target_property(odoc_file${doc_target}OCAML_ODOC)list(APPENDodoc_files-load${odoc_file})endforeach()add_custom_target(ocaml_docCOMMAND${CMAKE_COMMAND}-Eremove_directory${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/htmlCOMMAND${CMAKE_COMMAND}-Emake_directory${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/htmlCOMMAND${OCAMLFIND}ocamldoc-d${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html-sort-colorize-code-html${odoc_files}COMMAND${CMAKE_COMMAND}-Ecopy${CMAKE_CURRENT_SOURCE_DIR}/_ocamldoc/style.css${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html)add_dependencies(ocaml_doc${doc_targets})if(NOTLLVM_INSTALL_TOOLCHAIN_ONLY)# ./ suffix is needed to copy the contents of html directory without# appending html/ into LLVM_INSTALL_OCAMLDOC_HTML_DIR.install(DIRECTORY${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html/.COMPONENTocamldoc-htmlDESTINATION"${LLVM_INSTALL_OCAMLDOC_HTML_DIR}")endif()endif()