CMakeLists.txt 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. project(EigenDoc)
  2. set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
  3. project(EigenDoc)
  4. if(CMAKE_COMPILER_IS_GNUCXX)
  5. if(CMAKE_SYSTEM_NAME MATCHES Linux)
  6. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -g1")
  7. endif(CMAKE_SYSTEM_NAME MATCHES Linux)
  8. endif(CMAKE_COMPILER_IS_GNUCXX)
  9. option(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF)
  10. option(EIGEN_DOC_USE_MATHJAX "Use MathJax for rendering math in HTML docs" ON)
  11. # Set some Doxygen flags
  12. set(EIGEN_DOXY_PROJECT_NAME "Eigen")
  13. set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "")
  14. set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/Eigen\" \"${Eigen_SOURCE_DIR}/doc\"")
  15. set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "220")
  16. set(EIGEN_DOXY_TAGFILES "")
  17. if(EIGEN_INTERNAL_DOCUMENTATION)
  18. set(EIGEN_DOXY_INTERNAL "YES")
  19. else(EIGEN_INTERNAL_DOCUMENTATION)
  20. set(EIGEN_DOXY_INTERNAL "NO")
  21. endif(EIGEN_INTERNAL_DOCUMENTATION)
  22. if (EIGEN_DOC_USE_MATHJAX)
  23. set(EIGEN_DOXY_USE_MATHJAX "YES")
  24. else ()
  25. set(EIGEN_DOXY_USE_MATHJAX "NO")
  26. endif()
  27. configure_file(
  28. ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
  29. ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
  30. )
  31. set(EIGEN_DOXY_PROJECT_NAME "Eigen-unsupported")
  32. set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX "/unsupported")
  33. set(EIGEN_DOXY_INPUT "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"")
  34. set(EIGEN_DOXY_HTML_COLORSTYLE_HUE "0")
  35. set(EIGEN_DOXY_TAGFILES "\"${Eigen_BINARY_DIR}/doc/Eigen.doxytags=..\"")
  36. #set(EIGEN_DOXY_TAGFILES "")
  37. configure_file(
  38. ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
  39. ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-unsupported
  40. )
  41. configure_file(
  42. ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in
  43. ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html
  44. )
  45. configure_file(
  46. ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in
  47. ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html
  48. )
  49. configure_file(
  50. ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in
  51. ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml
  52. )
  53. configure_file(
  54. ${Eigen_SOURCE_DIR}/unsupported/doc/eigendoxy_layout.xml.in
  55. ${Eigen_BINARY_DIR}/doc/unsupported/eigendoxy_layout.xml
  56. )
  57. set(examples_targets "")
  58. set(snippets_targets "")
  59. add_definitions("-DEIGEN_MAKING_DOCS")
  60. add_custom_target(all_examples)
  61. add_subdirectory(examples)
  62. add_subdirectory(special_examples)
  63. add_subdirectory(snippets)
  64. add_custom_target(
  65. doc-eigen-prerequisites
  66. ALL
  67. COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/html/
  68. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js ${CMAKE_CURRENT_BINARY_DIR}/html/
  69. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png ${CMAKE_CURRENT_BINARY_DIR}/html/
  70. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png ${CMAKE_CURRENT_BINARY_DIR}/html/
  71. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png ${CMAKE_CURRENT_BINARY_DIR}/html/
  72. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/AsciiQuickReference.txt ${CMAKE_CURRENT_BINARY_DIR}/html/
  73. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  74. )
  75. add_custom_target(
  76. doc-unsupported-prerequisites
  77. ALL
  78. COMMAND ${CMAKE_COMMAND} -E make_directory ${Eigen_BINARY_DIR}/doc/html/unsupported
  79. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
  80. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
  81. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
  82. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
  83. WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc
  84. )
  85. add_dependencies(doc-eigen-prerequisites all_snippets all_examples)
  86. add_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_examples)
  87. add_custom_target(doc ALL
  88. COMMAND doxygen
  89. COMMAND doxygen Doxyfile-unsupported
  90. COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html
  91. COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc
  92. COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz
  93. COMMAND ${CMAKE_COMMAND} -E tar cfz eigen-doc.tgz eigen-doc
  94. COMMAND ${CMAKE_COMMAND} -E rename eigen-doc.tgz eigen-doc/eigen-doc.tgz
  95. COMMAND ${CMAKE_COMMAND} -E rename eigen-doc html
  96. WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc)
  97. add_dependencies(doc doc-eigen-prerequisites doc-unsupported-prerequisites)