1*67e74705SXin Li 2*67e74705SXin Liif (DOXYGEN_FOUND) 3*67e74705SXin Liif (LLVM_ENABLE_DOXYGEN) 4*67e74705SXin Li set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) 5*67e74705SXin Li set(abs_builddir ${CMAKE_CURRENT_BINARY_DIR}) 6*67e74705SXin Li 7*67e74705SXin Li if (HAVE_DOT) 8*67e74705SXin Li set(DOT ${LLVM_PATH_DOT}) 9*67e74705SXin Li endif() 10*67e74705SXin Li 11*67e74705SXin Li if (LLVM_DOXYGEN_EXTERNAL_SEARCH) 12*67e74705SXin Li set(enable_searchengine "YES") 13*67e74705SXin Li set(searchengine_url "${LLVM_DOXYGEN_SEARCHENGINE_URL}") 14*67e74705SXin Li set(enable_server_based_search "YES") 15*67e74705SXin Li set(enable_external_search "YES") 16*67e74705SXin Li set(extra_search_mappings "${LLVM_DOXYGEN_SEARCH_MAPPINGS}") 17*67e74705SXin Li else() 18*67e74705SXin Li set(enable_searchengine "NO") 19*67e74705SXin Li set(searchengine_url "") 20*67e74705SXin Li set(enable_server_based_search "NO") 21*67e74705SXin Li set(enable_external_search "NO") 22*67e74705SXin Li set(extra_search_mappings "") 23*67e74705SXin Li endif() 24*67e74705SXin Li 25*67e74705SXin Li # If asked, configure doxygen for the creation of a Qt Compressed Help file. 26*67e74705SXin Li if (LLVM_ENABLE_DOXYGEN_QT_HELP) 27*67e74705SXin Li set(CLANG_DOXYGEN_QCH_FILENAME "org.llvm.clang.qch" CACHE STRING 28*67e74705SXin Li "Filename of the Qt Compressed help file") 29*67e74705SXin Li set(CLANG_DOXYGEN_QHP_NAMESPACE "org.llvm.clang" CACHE STRING 30*67e74705SXin Li "Namespace under which the intermediate Qt Help Project file lives") 31*67e74705SXin Li set(CLANG_DOXYGEN_QHP_CUST_FILTER_NAME "Clang ${CLANG_VERSION}" CACHE STRING 32*67e74705SXin Li "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters") 33*67e74705SXin Li set(CLANG_DOXYGEN_QHP_CUST_FILTER_ATTRS "Clang,${CLANG_VERSION}" CACHE STRING 34*67e74705SXin Li "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes") 35*67e74705SXin Li set(clang_doxygen_generate_qhp "YES") 36*67e74705SXin Li set(clang_doxygen_qch_filename "${CLANG_DOXYGEN_QCH_FILENAME}") 37*67e74705SXin Li set(clang_doxygen_qhp_namespace "${CLANG_DOXYGEN_QHP_NAMESPACE}") 38*67e74705SXin Li set(clang_doxygen_qhelpgenerator_path "${LLVM_DOXYGEN_QHELPGENERATOR_PATH}") 39*67e74705SXin Li set(clang_doxygen_qhp_cust_filter_name "${CLANG_DOXYGEN_QHP_CUST_FILTER_NAME}") 40*67e74705SXin Li set(clang_doxygen_qhp_cust_filter_attrs "${CLANG_DOXYGEN_QHP_CUST_FILTER_ATTRS}") 41*67e74705SXin Li else() 42*67e74705SXin Li set(clang_doxygen_generate_qhp "NO") 43*67e74705SXin Li set(clang_doxygen_qch_filename "") 44*67e74705SXin Li set(clang_doxygen_qhp_namespace "") 45*67e74705SXin Li set(clang_doxygen_qhelpgenerator_path "") 46*67e74705SXin Li set(clang_doxygen_qhp_cust_filter_name "") 47*67e74705SXin Li set(clang_doxygen_qhp_cust_filter_attrs "") 48*67e74705SXin Li endif() 49*67e74705SXin Li 50*67e74705SXin Li option(LLVM_DOXYGEN_SVG 51*67e74705SXin Li "Use svg instead of png files for doxygen graphs." OFF) 52*67e74705SXin Li if (LLVM_DOXYGEN_SVG) 53*67e74705SXin Li set(DOT_IMAGE_FORMAT "svg") 54*67e74705SXin Li else() 55*67e74705SXin Li set(DOT_IMAGE_FORMAT "png") 56*67e74705SXin Li endif() 57*67e74705SXin Li 58*67e74705SXin Li configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in 59*67e74705SXin Li ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY) 60*67e74705SXin Li 61*67e74705SXin Li set(abs_top_srcdir) 62*67e74705SXin Li set(abs_top_builddir) 63*67e74705SXin Li set(DOT) 64*67e74705SXin Li set(enable_searchengine) 65*67e74705SXin Li set(searchengine_url) 66*67e74705SXin Li set(enable_server_based_search) 67*67e74705SXin Li set(enable_external_search) 68*67e74705SXin Li set(extra_search_mappings) 69*67e74705SXin Li set(clang_doxygen_generate_qhp) 70*67e74705SXin Li set(clang_doxygen_qch_filename) 71*67e74705SXin Li set(clang_doxygen_qhp_namespace) 72*67e74705SXin Li set(clang_doxygen_qhelpgenerator_path) 73*67e74705SXin Li set(clang_doxygen_qhp_cust_filter_name) 74*67e74705SXin Li set(clang_doxygen_qhp_cust_filter_attrs) 75*67e74705SXin Li set(DOT_IMAGE_FORMAT) 76*67e74705SXin Li 77*67e74705SXin Li add_custom_target(doxygen-clang 78*67e74705SXin Li COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg 79*67e74705SXin Li WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} 80*67e74705SXin Li COMMENT "Generating clang doxygen documentation." VERBATIM) 81*67e74705SXin Li 82*67e74705SXin Li if (LLVM_BUILD_DOCS) 83*67e74705SXin Li add_dependencies(doxygen doxygen-clang) 84*67e74705SXin Li endif() 85*67e74705SXin Li 86*67e74705SXin Li if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) 87*67e74705SXin Li install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html 88*67e74705SXin Li DESTINATION docs/html) 89*67e74705SXin Li endif() 90*67e74705SXin Liendif() 91*67e74705SXin Liendif() 92*67e74705SXin Li 93*67e74705SXin Liif (LLVM_ENABLE_SPHINX) 94*67e74705SXin Li if (SPHINX_FOUND) 95*67e74705SXin Li include(AddSphinxTarget) 96*67e74705SXin Li if (${SPHINX_OUTPUT_HTML}) 97*67e74705SXin Li add_sphinx_target(html clang) 98*67e74705SXin Li add_custom_command(TARGET docs-clang-html POST_BUILD 99*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E copy 100*67e74705SXin Li "${CMAKE_CURRENT_SOURCE_DIR}/LibASTMatchersReference.html" 101*67e74705SXin Li "${CMAKE_CURRENT_BINARY_DIR}/html/LibASTMatchersReference.html") 102*67e74705SXin Li endif() 103*67e74705SXin Li if (${SPHINX_OUTPUT_MAN}) 104*67e74705SXin Li add_sphinx_target(man clang) 105*67e74705SXin Li endif() 106*67e74705SXin Li endif() 107*67e74705SXin Liendif() 108