Files
fail/cmake/doxygen.cmake
Horst Schirmeier 3ad42e270c fixes for Debian 9
- search for libdwarf.h in new locations (e.g., /usr/include/libdwarf/)
- build Bochs with -std=gnu++98 (gnu++14 is default since GCC 6.1)
- specify "proto2" syntax for protobuf messages
- minor build-system and C++ namespace fixes

Change-Id: I16dbc622c797ef8e936fe3c0fb9b03029d27529d
2017-08-01 14:12:03 +02:00

36 lines
1.4 KiB
CMake

### Setup doxygen documentation
include(CMakeParseArguments) # work around internal FindDoxygen bug
find_package(Doxygen)
if(DOXYGEN_FOUND)
# Using a .in file means we can use CMake to insert project settings
# into the doxyfile. For example, CMake will replace @PROJECT_NAME@ in
# a configured file with the CMake PROJECT_NAME variable's value.
set(FAIL_DOC_OUTPUT "${PROJECT_BINARY_DIR}/doc")
execute_process(COMMAND find "${PROJECT_SOURCE_DIR}/src/core/" -type d -printf "%p "
OUTPUT_VARIABLE FAIL_DOC_SOURCE)
set(FAIL_DOC_SOURCE "${FAIL_DOC_SOURCE} ${PROJECT_SOURCE_DIR}/src/plugins")
set(FAIL_DOC_EXCLUDE_PATTERNS "*/util/pstream.h */util/optionparser/optionparser.h")
file(MAKE_DIRECTORY ${FAIL_DOC_OUTPUT})
# FIXME: The find command does not quote the paths to be processed by doxygen. That
# means, the path to your FAIL* directory should not contain any blanks.
configure_file(${PROJECT_SOURCE_DIR}/cmake/Doxyfile.in
${PROJECT_BINARY_DIR}/Doxyfile @ONLY
)
## call make doc to generate documentation
set(line0 "[${PROJECT_NAME}] Generating FAIL* documentation with Doxygen")
set(line1 " Directories: ${FAIL_DOC_SOURCE}")
set(line2 " Excluded patterns: ${FAIL_DOC_EXCLUDE_PATTERNS}")
add_custom_target(doc
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
DEPENDS ${PROJECT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "${line0}\n${line1}\n${line2}" VERBATIM
)
endif(DOXYGEN_FOUND)