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") 10 endif(CMAKE_SYSTEM_NAME MATCHES Linux) 11 endif(CMAKE_COMPILER_IS_GNUCXX) 12 13 option(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF) 14 15 16 # Set some Doxygen flags 17 set(EIGEN_DOXY_PROJECT_NAME "Eigen") 18 set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "") 19 set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/Eigen\" \"${Eigen_SOURCE_DIR}/doc\"") 20 set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "220") 21 set(EIGEN_DOXY_TAGFILES "") 22 if(EIGEN_INTERNAL_DOCUMENTATION) 23 set(EIGEN_DOXY_INTERNAL "YES") 24 else(EIGEN_INTERNAL_DOCUMENTATION) 25 set(EIGEN_DOXY_INTERNAL "NO") 26 endif(EIGEN_INTERNAL_DOCUMENTATION) 27 28 configure_file( 29 ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in 30 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile 31 ) 32 33 set(EIGEN_DOXY_PROJECT_NAME "Eigen-unsupported") 34 set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/unsupported") 35 set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"") 36 set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0") 37 # set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/eigen.doxytags =../\"") 38 set(EIGEN_DOXY_TAGFILES "") 39 40 configure_file( 41 ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in 42 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-unsupported 43 ) 44 45 configure_file( 46 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in 47 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html 48 ) 49 50 configure_file( 51 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in 52 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html 53 ) 54 55 configure_file( 56 ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in 57 ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml 58 ) 59 60 configure_file( 61 ${Eigen_SOURCE_DIR}/unsupported/doc/eigendoxy_layout.xml.in 62 ${Eigen_BINARY_DIR}/doc/unsupported/eigendoxy_layout.xml 63 ) 64 65 set(examples_targets "") 66 set(snippets_targets "") 67 68 add_definitions("-DEIGEN_MAKING_DOCS") 69 add_custom_target(all_examples) 70 71 add_subdirectory(examples) 72 add_subdirectory(special_examples) 73 add_subdirectory(snippets) 74 75 add_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/ 81 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/ 83 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 87 add_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/ 93 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/ 95 WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc 96 ) 97 98 add_dependencies(doc-eigen-prerequisites all_snippets all_examples) 99 add_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_examples) 100 101 add_custom_target(doc ALL 102 COMMAND doxygen 103 COMMAND doxygen Doxyfile-unsupported 104 COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html 105 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 112 add_dependencies(doc doc-eigen-prerequisites doc-unsupported-prerequisites) 113