1project(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() 11endif() 12 13# some examples and snippets needs c++11, so let's check it once 14check_cxx_compiler_flag("-std=c++11" EIGEN_COMPILER_SUPPORT_CPP11) 15 16option(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF) 17option(EIGEN_DOC_USE_MATHJAX "Use MathJax for rendering math in HTML docs" ON) 18 19# Set some Doxygen flags 20set(EIGEN_DOXY_PROJECT_NAME "Eigen") 21set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "") 22set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/Eigen\" \"${Eigen_SOURCE_DIR}/doc\"") 23set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "220") 24set(EIGEN_DOXY_TAGFILES "") 25 26if(EIGEN_INTERNAL_DOCUMENTATION) 27 set(EIGEN_DOXY_INTERNAL "YES") 28else() 29 set(EIGEN_DOXY_INTERNAL "NO") 30endif() 31 32if (EIGEN_DOC_USE_MATHJAX) 33 set(EIGEN_DOXY_USE_MATHJAX "YES") 34else () 35 set(EIGEN_DOXY_USE_MATHJAX "NO") 36endif() 37 38configure_file( 39 ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in 40 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile 41) 42 43set(EIGEN_DOXY_PROJECT_NAME "Eigen-unsupported") 44set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/unsupported") 45set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"") 46set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0") 47set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/Eigen.doxytags=..\"") 48#set(EIGEN_DOXY_TAGFILES "") 49 50configure_file( 51 ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in 52 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-unsupported 53) 54 55configure_file( 56 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in 57 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html 58) 59 60configure_file( 61 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in 62 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html 63) 64 65configure_file( 66 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in 67 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml 68) 69 70configure_file( 71 ${Eigen_SOURCE_DIR}/unsupported/doc/eigendoxy_layout.xml.in 72 ${Eigen_BINARY_DIR}/doc/unsupported/eigendoxy_layout.xml 73) 74 75set(examples_targets "") 76set(snippets_targets "") 77 78add_definitions("-DEIGEN_MAKING_DOCS") 79add_custom_target(all_examples) 80 81add_subdirectory(examples) 82add_subdirectory(special_examples) 83add_subdirectory(snippets) 84 85add_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/ 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/ 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 97add_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/ 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/ 105 WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc 106) 107 108add_dependencies(doc-eigen-prerequisites all_snippets all_examples) 109add_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_examples) 110 111add_custom_target(doc ALL 112 COMMAND doxygen 113 COMMAND doxygen Doxyfile-unsupported 114 COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html 115 COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc 116 COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz eigen-doc/unsupported/_formulas.log eigen-doc/_formulas.log 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 122add_dependencies(doc doc-eigen-prerequisites doc-unsupported-prerequisites) 123