blob: 8ff7559885e1bc2369bb7ba8fa2873569ea6ce90 [file] [log] [blame]
Brian Silverman72890c22015-09-19 14:37:37 -04001project(EigenDoc)
2
3set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
4
5project(EigenDoc)
6
7if(CMAKE_COMPILER_IS_GNUCXX)
8 if(CMAKE_SYSTEM_NAME MATCHES Linux)
9 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -g1")
10 endif(CMAKE_SYSTEM_NAME MATCHES Linux)
11endif(CMAKE_COMPILER_IS_GNUCXX)
12
Austin Schuh189376f2018-12-20 22:11:15 +110013option(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF)
14
15
Brian Silverman72890c22015-09-19 14:37:37 -040016# Set some Doxygen flags
17set(EIGEN_DOXY_PROJECT_NAME "Eigen")
18set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "")
19set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/Eigen\" \"${Eigen_SOURCE_DIR}/doc\"")
20set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "220")
21set(EIGEN_DOXY_TAGFILES "")
Austin Schuh189376f2018-12-20 22:11:15 +110022if(EIGEN_INTERNAL_DOCUMENTATION)
23 set(EIGEN_DOXY_INTERNAL "YES")
24else(EIGEN_INTERNAL_DOCUMENTATION)
25 set(EIGEN_DOXY_INTERNAL "NO")
26endif(EIGEN_INTERNAL_DOCUMENTATION)
Brian Silverman72890c22015-09-19 14:37:37 -040027
28configure_file(
29 ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
30 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
31)
32
33set(EIGEN_DOXY_PROJECT_NAME "Eigen-unsupported")
34set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/unsupported")
35set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"")
36set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0")
Austin Schuh189376f2018-12-20 22:11:15 +110037set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/Eigen.doxytags=..\"")
38#set(EIGEN_DOXY_TAGFILES "")
Brian Silverman72890c22015-09-19 14:37:37 -040039
40configure_file(
41 ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
42 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-unsupported
43)
44
45configure_file(
46 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in
47 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html
48)
49
50configure_file(
51 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in
52 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html
53)
54
55configure_file(
56 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in
57 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml
58)
59
60configure_file(
61 ${Eigen_SOURCE_DIR}/unsupported/doc/eigendoxy_layout.xml.in
62 ${Eigen_BINARY_DIR}/doc/unsupported/eigendoxy_layout.xml
63)
64
65set(examples_targets "")
66set(snippets_targets "")
67
68add_definitions("-DEIGEN_MAKING_DOCS")
69add_custom_target(all_examples)
70
71add_subdirectory(examples)
72add_subdirectory(special_examples)
73add_subdirectory(snippets)
74
75add_custom_target(
76 doc-eigen-prerequisites
77 ALL
78 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/html/
79 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js ${CMAKE_CURRENT_BINARY_DIR}/html/
80 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png ${CMAKE_CURRENT_BINARY_DIR}/html/
Austin Schuh189376f2018-12-20 22:11:15 +110081 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png ${CMAKE_CURRENT_BINARY_DIR}/html/
82 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png ${CMAKE_CURRENT_BINARY_DIR}/html/
Brian Silverman72890c22015-09-19 14:37:37 -040083 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/AsciiQuickReference.txt ${CMAKE_CURRENT_BINARY_DIR}/html/
84 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
85)
86
87add_custom_target(
88 doc-unsupported-prerequisites
89 ALL
90 COMMAND ${CMAKE_COMMAND} -E make_directory ${Eigen_BINARY_DIR}/doc/html/unsupported
91 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
92 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
Austin Schuh189376f2018-12-20 22:11:15 +110093 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
94 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
Brian Silverman72890c22015-09-19 14:37:37 -040095 WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc
96)
97
98add_dependencies(doc-eigen-prerequisites all_snippets all_examples)
99add_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_examples)
100
101add_custom_target(doc ALL
102 COMMAND doxygen
103 COMMAND doxygen Doxyfile-unsupported
Austin Schuh189376f2018-12-20 22:11:15 +1100104 COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html
Brian Silverman72890c22015-09-19 14:37:37 -0400105 COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc
106 COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz
107 COMMAND ${CMAKE_COMMAND} -E tar cfz eigen-doc.tgz eigen-doc
108 COMMAND ${CMAKE_COMMAND} -E rename eigen-doc.tgz eigen-doc/eigen-doc.tgz
109 COMMAND ${CMAKE_COMMAND} -E rename eigen-doc html
110 WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc)
111
112add_dependencies(doc doc-eigen-prerequisites doc-unsupported-prerequisites)