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