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