| # SPDX-FileCopyrightText: The Eigen Authors | |
| # SPDX-License-Identifier: MPL-2.0 | |
| project(EigenDoc) | |
| set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE) | |
| project(EigenDoc) | |
| if(CMAKE_COMPILER_IS_GNUCXX) | |
| if(CMAKE_SYSTEM_NAME MATCHES Linux) | |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -g1") | |
| endif() | |
| endif() | |
| option(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF) | |
| option(EIGEN_DOC_USE_MATHJAX "Use MathJax for rendering math in HTML docs" ON) | |
| # Set some Doxygen flags | |
| set(EIGEN_DOXY_PROJECT_NAME "Eigen") | |
| set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "") | |
| set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/doc\" \"${Eigen_SOURCE_DIR}/Eigen\"") | |
| set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "220") | |
| set(EIGEN_DOXY_TAGFILES "") | |
| if(EIGEN_INTERNAL_DOCUMENTATION) | |
| set(EIGEN_DOXY_INTERNAL "YES") | |
| else() | |
| set(EIGEN_DOXY_INTERNAL "NO") | |
| endif() | |
| if (EIGEN_DOC_USE_MATHJAX) | |
| set(EIGEN_DOXY_USE_MATHJAX "YES") | |
| else () | |
| set(EIGEN_DOXY_USE_MATHJAX "NO") | |
| endif() | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile | |
| ) | |
| set(EIGEN_DOXY_PROJECT_NAME "Eigen-Contrib") | |
| set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/contrib") | |
| set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/contrib/doc\" \"${Eigen_SOURCE_DIR}/contrib/Eigen\"") | |
| set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0") | |
| set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/Eigen.doxytags=..\"") | |
| #set(EIGEN_DOXY_TAGFILES "") | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-contrib | |
| ) | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html | |
| ) | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html | |
| ) | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml | |
| ) | |
| configure_file( | |
| ${Eigen_SOURCE_DIR}/contrib/doc/eigendoxy_layout.xml.in | |
| ${Eigen_BINARY_DIR}/doc/contrib/eigendoxy_layout.xml | |
| ) | |
| set(examples_targets "") | |
| set(snippets_targets "") | |
| add_definitions("-DEIGEN_MAKING_DOCS") | |
| add_custom_target(all_examples) | |
| add_subdirectory(examples) | |
| add_subdirectory(special_examples) | |
| add_subdirectory(snippets) | |
| add_custom_target( | |
| doc-eigen-prerequisites | |
| ALL | |
| COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/html/ | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png ${CMAKE_CURRENT_BINARY_DIR}/html/ | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png ${CMAKE_CURRENT_BINARY_DIR}/html/ | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png ${CMAKE_CURRENT_BINARY_DIR}/html/ | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/AsciiQuickReference.txt ${CMAKE_CURRENT_BINARY_DIR}/html/ | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} | |
| ) | |
| add_custom_target( | |
| doc-contrib-prerequisites | |
| ALL | |
| COMMAND ${CMAKE_COMMAND} -E make_directory ${Eigen_BINARY_DIR}/doc/html/contrib | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png ${CMAKE_CURRENT_BINARY_DIR}/html/contrib/ | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png ${CMAKE_CURRENT_BINARY_DIR}/html/contrib/ | |
| COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png ${CMAKE_CURRENT_BINARY_DIR}/html/contrib/ | |
| WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc | |
| ) | |
| add_dependencies(doc-eigen-prerequisites all_snippets all_examples) | |
| add_dependencies(doc-contrib-prerequisites contrib_snippets contrib_examples) | |
| add_custom_target(doc ALL | |
| COMMAND doxygen | |
| COMMAND doxygen Doxyfile-contrib | |
| COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html | |
| COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc | |
| COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz eigen-doc/contrib/_formulas.log eigen-doc/_formulas.log | |
| COMMAND ${CMAKE_COMMAND} -E tar cfz eigen-doc.tgz eigen-doc | |
| COMMAND ${CMAKE_COMMAND} -E rename eigen-doc.tgz eigen-doc/eigen-doc.tgz | |
| COMMAND ${CMAKE_COMMAND} -E rename eigen-doc html | |
| WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc) | |
| add_dependencies(doc doc-eigen-prerequisites doc-contrib-prerequisites) | |
| # This target writes below CMAKE_INSTALL_PREFIX like any install rule, so it | |
| # follows EIGEN_INSTALL: with the option off, Eigen places no file there. | |
| if(EIGEN_INSTALL) | |
| add_custom_target(install-doc ALL | |
| COMMAND ${CMAKE_COMMAND} -E copy_directory ${Eigen_BINARY_DIR}/doc ${CMAKE_INSTALL_FULL_DOCDIR} | |
| ) | |
| add_dependencies(install-doc doc) | |
| endif() |