blob: d2956c18f80c558ed583ddefce1a14fe9d7f6c0e [file] [log] [blame]
Michael Gottesman8f897af2013-08-28 20:29:40 +00001
2if (DOXYGEN_FOUND)
3if (LLVM_ENABLE_DOXYGEN)
Michael Gottesman22a351d2013-08-28 20:29:44 +00004 set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
Michael Gottesman043c53b2013-08-28 21:55:41 +00005 set(abs_builddir ${CMAKE_CURRENT_BINARY_DIR})
Michael Gottesman8f897af2013-08-28 20:29:40 +00006
7 if (HAVE_DOT)
8 set(DOT ${LLVM_PATH_DOT})
9 endif()
10
Michael Gottesman043c53b2013-08-28 21:55:41 +000011 if (LLVM_DOXYGEN_EXTERNAL_SEARCH)
12 set(enable_searchengine "YES")
13 set(searchengine_url "${LLVM_DOXYGEN_SEARCHENGINE_URL}")
14 set(enable_server_based_search "YES")
15 set(enable_external_search "YES")
16 set(extra_search_mappings "${LLVM_DOXYGEN_SEARCH_MAPPINGS}")
Michael Gottesman22a351d2013-08-28 20:29:44 +000017 else()
Michael Gottesman043c53b2013-08-28 21:55:41 +000018 set(enable_searchengine "NO")
19 set(searchengine_url "")
20 set(enable_server_based_search "NO")
21 set(enable_external_search "NO")
22 set(extra_search_mappings "")
Michael Gottesman22a351d2013-08-28 20:29:44 +000023 endif()
24
Dmitri Gribenko10e2a8f2014-03-13 14:17:01 +000025 # If asked, configure doxygen for the creation of a Qt Compressed Help file.
26 if (LLVM_ENABLE_DOXYGEN_QT_HELP)
27 set(CLANG_DOXYGEN_QCH_FILENAME "org.llvm.clang.qch" CACHE STRING
28 "Filename of the Qt Compressed help file")
29 set(CLANG_DOXYGEN_QHP_NAMESPACE "org.llvm.clang" CACHE STRING
30 "Namespace under which the intermediate Qt Help Project file lives")
31 set(CLANG_DOXYGEN_QHP_CUST_FILTER_NAME "Clang ${CLANG_VERSION}" CACHE STRING
32 "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters")
33 set(CLANG_DOXYGEN_QHP_CUST_FILTER_ATTRS "Clang,${CLANG_VERSION}" CACHE STRING
34 "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes")
35 set(clang_doxygen_generate_qhp "YES")
36 set(clang_doxygen_qch_filename "${CLANG_DOXYGEN_QCH_FILENAME}")
37 set(clang_doxygen_qhp_namespace "${CLANG_DOXYGEN_QHP_NAMESPACE}")
38 set(clang_doxygen_qhelpgenerator_path "${LLVM_DOXYGEN_QHELPGENERATOR_PATH}")
39 set(clang_doxygen_qhp_cust_filter_name "${CLANG_DOXYGEN_QHP_CUST_FILTER_NAME}")
40 set(clang_doxygen_qhp_cust_filter_attrs "${CLANG_DOXYGEN_QHP_CUST_FILTER_ATTRS}")
41 else()
42 set(clang_doxygen_generate_qhp "NO")
43 set(clang_doxygen_qch_filename "")
44 set(clang_doxygen_qhp_namespace "")
45 set(clang_doxygen_qhelpgenerator_path "")
46 set(clang_doxygen_qhp_cust_filter_name "")
47 set(clang_doxygen_qhp_cust_filter_attrs "")
48 endif()
49
Hans Wennborg83c05892015-08-17 23:38:56 +000050 option(LLVM_DOXYGEN_SVG
51 "Use svg instead of png files for doxygen graphs." OFF)
52 if (LLVM_DOXYGEN_SVG)
53 set(DOT_IMAGE_FORMAT "svg")
54 else()
55 set(DOT_IMAGE_FORMAT "png")
56 endif()
57
Michael Gottesman8f897af2013-08-28 20:29:40 +000058 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in
59 ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY)
Michael Gottesman043c53b2013-08-28 21:55:41 +000060
61 set(abs_top_srcdir)
62 set(abs_top_builddir)
Michael Gottesman8f897af2013-08-28 20:29:40 +000063 set(DOT)
Michael Gottesman043c53b2013-08-28 21:55:41 +000064 set(enable_searchengine)
65 set(searchengine_url)
66 set(enable_server_based_search)
67 set(enable_external_search)
68 set(extra_search_mappings)
Dmitri Gribenko10e2a8f2014-03-13 14:17:01 +000069 set(clang_doxygen_generate_qhp)
70 set(clang_doxygen_qch_filename)
71 set(clang_doxygen_qhp_namespace)
72 set(clang_doxygen_qhelpgenerator_path)
73 set(clang_doxygen_qhp_cust_filter_name)
74 set(clang_doxygen_qhp_cust_filter_attrs)
Hans Wennborg83c05892015-08-17 23:38:56 +000075 set(DOT_IMAGE_FORMAT)
Michael Gottesman8f897af2013-08-28 20:29:40 +000076
77 add_custom_target(doxygen-clang
78 COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
79 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
80 COMMENT "Generating clang doxygen documentation." VERBATIM)
81
82 if (LLVM_BUILD_DOCS)
83 add_dependencies(doxygen doxygen-clang)
84 endif()
85
86 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
87 install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
88 DESTINATION docs/html)
89 endif()
90endif()
91endif()
Reid Kleckner5d21c492014-04-18 21:55:46 +000092
93if (LLVM_ENABLE_SPHINX)
Tom Stellard9c52dfe2017-05-09 01:42:33 +000094 include(AddSphinxTarget)
Reid Kleckner5d21c492014-04-18 21:55:46 +000095 if (SPHINX_FOUND)
Reid Kleckner5d21c492014-04-18 21:55:46 +000096 if (${SPHINX_OUTPUT_HTML})
97 add_sphinx_target(html clang)
Manuel Klimek13b70642016-04-28 13:37:45 +000098 add_custom_command(TARGET docs-clang-html POST_BUILD
99 COMMAND ${CMAKE_COMMAND} -E copy
Manuel Klimek9db93102016-04-28 14:28:19 +0000100 "${CMAKE_CURRENT_SOURCE_DIR}/LibASTMatchersReference.html"
Manuel Klimek13b70642016-04-28 13:37:45 +0000101 "${CMAKE_CURRENT_BINARY_DIR}/html/LibASTMatchersReference.html")
Reid Kleckner5d21c492014-04-18 21:55:46 +0000102 endif()
Andrew Wilkins6238c6f2015-06-30 02:52:38 +0000103 if (${SPHINX_OUTPUT_MAN})
104 add_sphinx_target(man clang)
105 endif()
Reid Kleckner5d21c492014-04-18 21:55:46 +0000106 endif()
107endif()