xref: /aosp_15_r20/external/eigen/doc/CMakeLists.txt (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Liproject(EigenDoc)
2*bf2c3715SXin Li
3*bf2c3715SXin Liset_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
4*bf2c3715SXin Li
5*bf2c3715SXin Liproject(EigenDoc)
6*bf2c3715SXin Li
7*bf2c3715SXin Liif(CMAKE_COMPILER_IS_GNUCXX)
8*bf2c3715SXin Li  if(CMAKE_SYSTEM_NAME MATCHES Linux)
9*bf2c3715SXin Li    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -g1")
10*bf2c3715SXin Li  endif()
11*bf2c3715SXin Liendif()
12*bf2c3715SXin Li
13*bf2c3715SXin Li# some examples and snippets needs c++11, so let's check it once
14*bf2c3715SXin Licheck_cxx_compiler_flag("-std=c++11" EIGEN_COMPILER_SUPPORT_CPP11)
15*bf2c3715SXin Li
16*bf2c3715SXin Lioption(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF)
17*bf2c3715SXin Lioption(EIGEN_DOC_USE_MATHJAX "Use MathJax for rendering math in HTML docs" ON)
18*bf2c3715SXin Li
19*bf2c3715SXin Li# Set some Doxygen flags
20*bf2c3715SXin Liset(EIGEN_DOXY_PROJECT_NAME             "Eigen")
21*bf2c3715SXin Liset(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX  "")
22*bf2c3715SXin Liset(EIGEN_DOXY_INPUT                    "\"${Eigen_SOURCE_DIR}/Eigen\" \"${Eigen_SOURCE_DIR}/doc\"")
23*bf2c3715SXin Liset(EIGEN_DOXY_HTML_COLORSTYLE_HUE      "220")
24*bf2c3715SXin Liset(EIGEN_DOXY_TAGFILES                 "")
25*bf2c3715SXin Li
26*bf2c3715SXin Liif(EIGEN_INTERNAL_DOCUMENTATION)
27*bf2c3715SXin Li  set(EIGEN_DOXY_INTERNAL                 "YES")
28*bf2c3715SXin Lielse()
29*bf2c3715SXin Li  set(EIGEN_DOXY_INTERNAL                 "NO")
30*bf2c3715SXin Liendif()
31*bf2c3715SXin Li
32*bf2c3715SXin Liif (EIGEN_DOC_USE_MATHJAX)
33*bf2c3715SXin Li  set(EIGEN_DOXY_USE_MATHJAX "YES")
34*bf2c3715SXin Lielse ()
35*bf2c3715SXin Li  set(EIGEN_DOXY_USE_MATHJAX "NO")
36*bf2c3715SXin Liendif()
37*bf2c3715SXin Li
38*bf2c3715SXin Liconfigure_file(
39*bf2c3715SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
40*bf2c3715SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
41*bf2c3715SXin Li)
42*bf2c3715SXin Li
43*bf2c3715SXin Liset(EIGEN_DOXY_PROJECT_NAME             "Eigen-unsupported")
44*bf2c3715SXin Liset(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX  "/unsupported")
45*bf2c3715SXin Liset(EIGEN_DOXY_INPUT                    "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"")
46*bf2c3715SXin Liset(EIGEN_DOXY_HTML_COLORSTYLE_HUE      "0")
47*bf2c3715SXin Liset(EIGEN_DOXY_TAGFILES                 "\"${Eigen_BINARY_DIR}/doc/Eigen.doxytags=..\"")
48*bf2c3715SXin Li#set(EIGEN_DOXY_TAGFILES                 "")
49*bf2c3715SXin Li
50*bf2c3715SXin Liconfigure_file(
51*bf2c3715SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
52*bf2c3715SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-unsupported
53*bf2c3715SXin Li)
54*bf2c3715SXin Li
55*bf2c3715SXin Liconfigure_file(
56*bf2c3715SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in
57*bf2c3715SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html
58*bf2c3715SXin Li)
59*bf2c3715SXin Li
60*bf2c3715SXin Liconfigure_file(
61*bf2c3715SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in
62*bf2c3715SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html
63*bf2c3715SXin Li)
64*bf2c3715SXin Li
65*bf2c3715SXin Liconfigure_file(
66*bf2c3715SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in
67*bf2c3715SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml
68*bf2c3715SXin Li)
69*bf2c3715SXin Li
70*bf2c3715SXin Liconfigure_file(
71*bf2c3715SXin Li  ${Eigen_SOURCE_DIR}/unsupported/doc/eigendoxy_layout.xml.in
72*bf2c3715SXin Li  ${Eigen_BINARY_DIR}/doc/unsupported/eigendoxy_layout.xml
73*bf2c3715SXin Li)
74*bf2c3715SXin Li
75*bf2c3715SXin Liset(examples_targets "")
76*bf2c3715SXin Liset(snippets_targets "")
77*bf2c3715SXin Li
78*bf2c3715SXin Liadd_definitions("-DEIGEN_MAKING_DOCS")
79*bf2c3715SXin Liadd_custom_target(all_examples)
80*bf2c3715SXin Li
81*bf2c3715SXin Liadd_subdirectory(examples)
82*bf2c3715SXin Liadd_subdirectory(special_examples)
83*bf2c3715SXin Liadd_subdirectory(snippets)
84*bf2c3715SXin Li
85*bf2c3715SXin Liadd_custom_target(
86*bf2c3715SXin Li  doc-eigen-prerequisites
87*bf2c3715SXin Li  ALL
88*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/html/
89*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js           ${CMAKE_CURRENT_BINARY_DIR}/html/
90*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png  ${CMAKE_CURRENT_BINARY_DIR}/html/
91*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png                    ${CMAKE_CURRENT_BINARY_DIR}/html/
92*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png                     ${CMAKE_CURRENT_BINARY_DIR}/html/
93*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/AsciiQuickReference.txt          ${CMAKE_CURRENT_BINARY_DIR}/html/
94*bf2c3715SXin Li  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
95*bf2c3715SXin Li)
96*bf2c3715SXin Li
97*bf2c3715SXin Liadd_custom_target(
98*bf2c3715SXin Li  doc-unsupported-prerequisites
99*bf2c3715SXin Li  ALL
100*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E make_directory ${Eigen_BINARY_DIR}/doc/html/unsupported
101*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js           ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
102*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png  ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
103*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png                    ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
104*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png                     ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
105*bf2c3715SXin Li  WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc
106*bf2c3715SXin Li)
107*bf2c3715SXin Li
108*bf2c3715SXin Liadd_dependencies(doc-eigen-prerequisites all_snippets all_examples)
109*bf2c3715SXin Liadd_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_examples)
110*bf2c3715SXin Li
111*bf2c3715SXin Liadd_custom_target(doc ALL
112*bf2c3715SXin Li  COMMAND doxygen
113*bf2c3715SXin Li  COMMAND doxygen Doxyfile-unsupported
114*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html
115*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc
116*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz eigen-doc/unsupported/_formulas.log eigen-doc/_formulas.log
117*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E tar cfz eigen-doc.tgz eigen-doc
118*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E rename eigen-doc.tgz eigen-doc/eigen-doc.tgz
119*bf2c3715SXin Li  COMMAND ${CMAKE_COMMAND} -E rename eigen-doc html
120*bf2c3715SXin Li  WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc)
121*bf2c3715SXin Li
122*bf2c3715SXin Liadd_dependencies(doc doc-eigen-prerequisites doc-unsupported-prerequisites)
123