Update list-maintainers to output redmine syntax
[hoomd-blue.git] / doc / CMakeLists.txt
blobb5a58c3f58b5b4abee2d5c905eb6dbf79a65e25f
1 # Maintainer: joaander
3 if (DOXYGEN)
5 # policy change: always build all documentation even on platforms that don't
6 # have CUDA
7 set(DOXYGEN_PREDEFINED ${DOXYGEN_PREDEFINED} " \"ENABLE_CUDA=1\" \\
8     \"NVCC=1\" \\
9     \"BOOST_VERSION=103500\" ")
11 # disable DOT in doxygen if dot is not found
12 if(DOXYGEN_DOT_PATH)
13     set(DOXYGEN_HAVE_DOT "YES")
14 else(DOXYGEN_DOT_PATH)
15     set(DOXYGEN_HAVE_DOT "NO")
16 endif(DOXYGEN_DOT_PATH)
18 # setup version number to be included in the documentation
19 set(DOXYGEN_HOOMD_VERSION ${HOOMD_VERSION_LONG})
21 # generate a list of source files to depend on
22 file(GLOB_RECURSE _source_files
23                   ${HOOMD_SOURCE_DIR}/libhoomd/*.h
24                   ${HOOMD_SOURCE_DIR}/libhoomd/*.cuh
25                   ${HOOMD_SOURCE_DIR}/libhoomd/*.cc
26                   ${HOOMD_SOURCE_DIR}/libhoomd/*.cu)
28 set (_dev_doc_sources  ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile_dev.in
29                        ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide.doc
30                        ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_mac.doc
31                        ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_ubuntu.dox
32                        ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_centos.dox
33                        ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_fedora.dox
34                        ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_generic.doc
35                        ${CMAKE_CURRENT_SOURCE_DIR}/user/license.doc
36                        ${CMAKE_CURRENT_SOURCE_DIR}/user/citing.dox
37                        ${CMAKE_CURRENT_SOURCE_DIR}/user/credits.doc
38                        ${CMAKE_CURRENT_SOURCE_DIR}/dev/DeveloperInfo.doc
39                        ${CMAKE_CURRENT_SOURCE_DIR}/dev/Groups.doc
40                        ${CMAKE_CURRENT_SOURCE_DIR}/dev/MainPage.doc
41                        ${CMAKE_CURRENT_SOURCE_DIR}/dev/DoxygenLayout.xml
42                        )
44 # configure the doxygen file and target for the developer documentation
45 set(DOXYGEN_DEV_DOC_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/hoomd-devdoc-${HOOMD_VERSION}")
46 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile_dev.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_dev)
47 add_custom_command (OUTPUT ${DOXYGEN_DEV_DOC_HTML_DIR}/index.html
48                     COMMAND ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_dev
49                     DEPENDS ${_source_files}
50                     ${CMAKE_CURRENT_SOURCE_DIR}/user/*.doc
51                     ${CMAKE_CURRENT_SOURCE_DIR}/user/*.dox
52                     ${CMAKE_CURRENT_SOURCE_DIR}/dev/*.doc
53                     ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile_dev.in
54                     ${CMAKE_CURRENT_SOURCE_DIR}/dev/DoxygenLayout.xml)
56 add_custom_target (dev ALL DEPENDS ${DOXYGEN_DEV_DOC_HTML_DIR}/index.html
57                            SOURCES ${_dev_doc_sources})
59 # configure the doxygen file and target for the user documentation
61 file(GLOB_RECURSE _module_files
62                   ${HOOMD_SOURCE_DIR}/python-module/*.py)
64 # custom html headers, footers and stylesheets have been created to make the
65 # doxygen docs fit in with the main HOOMD homepage. Enable them as an option
66 option(ENABLE_DOXYGEN_HOOMD_STYLE OFF "Enable the usage of the HOOMD homepage
67 stylesheet in processing the doxygen html")
68 mark_as_advanced(ENABLE_DOXYGEN_HOOMD_STYLE)
69 if (ENABLE_DOXYGEN_HOOMD_STYLE)
70     set(DOXYGEN_HTML_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/user/header.html)
71     set(DOXYGEN_HTML_FOOTER ${CMAKE_CURRENT_SOURCE_DIR}/user/footer.html)
72     set(DOXYGEN_HTML_STYLESHEET ${CMAKE_CURRENT_SOURCE_DIR}/user/stylesheet.css)
73     set(DOXYGEN_USE_MATHJAX YES)
74     set(DOXYGEN_DISABLE_INDEX YES)
75 else (ENABLE_DOXYGEN_HOOMD_STYLE)
76     set(DOXYGEN_HTML_HEADER "")
77     set(DOXYGEN_HTML_FOOTER "")
78     set(DOXYGEN_HTML_STYLESHEET "")
79     set(DOXYGEN_USE_MATHJAX NO)
80     set(DOXYGEN_DISABLE_INDEX NO)
81 endif (ENABLE_DOXYGEN_HOOMD_STYLE)
83 # configure the doxygen file
84 set(DOXYGEN_USER_DOC_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/hoomd-userdoc-${HOOMD_VERSION}")
85 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile_user.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_user)
87 set (_user_doc_sources  ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile_user.in
88                         ${CMAKE_CURRENT_SOURCE_DIR}/user/installation_guide.doc
89                         ${CMAKE_CURRENT_SOURCE_DIR}/user/quick_start.doc
90                         ${CMAKE_CURRENT_SOURCE_DIR}/user/examples.dox
91                         ${CMAKE_CURRENT_SOURCE_DIR}/user/index.doc
92                         ${CMAKE_CURRENT_SOURCE_DIR}/user/xml_file_format.doc
93                         ${CMAKE_CURRENT_SOURCE_DIR}/user/command_line_options.doc
94                         ${CMAKE_CURRENT_SOURCE_DIR}/user/conversion_scripts.doc
95                         ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide.doc
96                         ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_mac.doc
97                         ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_ubuntu.dox
98                         ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_centos.dox
99                         ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_fedora.dox
100                         ${CMAKE_CURRENT_SOURCE_DIR}/user/compile_guide_linux_generic.doc
101                         ${CMAKE_CURRENT_SOURCE_DIR}/user/license.doc
102                         ${CMAKE_CURRENT_SOURCE_DIR}/user/citing.dox
103                         ${CMAKE_CURRENT_SOURCE_DIR}/user/credits.doc
104                         ${CMAKE_CURRENT_SOURCE_DIR}/user/DoxygenLayout.xml
105                         ${CMAKE_CURRENT_SOURCE_DIR}/user/stylesheet.css
106                         ${CMAKE_CURRENT_SOURCE_DIR}/user/header.html
107                         ${CMAKE_CURRENT_SOURCE_DIR}/user/footer.html
108                         )
110 add_custom_command (OUTPUT ${DOXYGEN_USER_DOC_HTML_DIR}/index.html
111                     COMMAND ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_user
112                     DEPENDS ${_module_files}
113                     ${CMAKE_CURRENT_SOURCE_DIR}/user/*.doc
114                     ${CMAKE_CURRENT_SOURCE_DIR}/user/*.dox
115                     ${CMAKE_CURRENT_SOURCE_DIR}/user/*.html
116                     ${CMAKE_CURRENT_SOURCE_DIR}/user/*.css
117                     ${CMAKE_CURRENT_SOURCE_DIR}/dev/*.doc
118                     ${HOOMD_SOURCE_DIR}/share/hoomd/examples/*
119                     ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile_user.in
120                     ${CMAKE_CURRENT_SOURCE_DIR}/user/DoxygenLayout.xml)
122 add_custom_target (user ALL DEPENDS ${DOXYGEN_USER_DOC_HTML_DIR}/index.html
123                             SOURCES ${_user_doc_sources})
125 # copy bibtex data into build directory (doxygen doesn't seem to like absolute refs to the bib file)
126 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/user/HOOMD.bib ${CMAKE_CURRENT_BINARY_DIR}/HOOMD.bib COPYONLY)
128 endif (DOXYGEN)