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