1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# Setup doxygen stuff. Only really of interest to devs...
find_package(Doxygen)
if(DOXYGEN_FOUND)
# Few configurable params
if(NOT DOXYGEN_DIR)
set(DOXYGEN_DIR "${CMAKE_CURRENT_BINARY_DIR}/doxygen")
endif()
if(NOT DOXYGEN_HAVE_DOT)
# String YES/NO; let user override what find_package() got.
set(DOXYGEN_HAVE_DOT ${DOXYGEN_DOT_FOUND})
endif()
if(NOT DOXYGEN_GRAPHIC_CALLGRAPHS)
# String YES/NO. These are expensive to generate and big.
set(DOXYGEN_GRAPHIC_CALLGRAPHS "NO")
endif()
# The config codes the paths to the files, so we need to set them
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in"
"${DOXYGEN_DIR}/Doxyfile" @ONLY)
# Special target, since it hardly ever gets used. We need to pull in
# the various generated source files, and the easiest way to ensure
# they're all these is to just build ctwm. That gets a little
# tedious when working on docs though, so try depending on CTWMSRC.
# That seems to work well enough, and if we find edge cases that
# break it... well, it's a tool for devs, not end users, so we can
# afford the possibility of surprises.
add_custom_target(doxygen
DEPENDS ${CTWMSRC}
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_DIR}/Doxyfile
WORKING_DIRECTORY ${DOXYGEN_DIR}
COMMENT "Generating Doxygen documentation in ${DOXYGEN_DIR}"
VERBATIM)
add_custom_target(doxyclean
COMMAND rm -rf ${DOXYGEN_DIR}/html
COMMENT "Cleaning up Doxygen docs")
endif(DOXYGEN_FOUND)
|