# check if Doxygen is installed
find_package (Doxygen COMPONENTS dot)
if (DOXYGEN_FOUND)
# set custom command scope
unset (_DOC_ALL)
if (BUILD_DOC_WITH_ALL)
set (_DOC_ALL ALL)
endif ()
# set input and output files
set (DOXYGEN_IN ${PROJECT_SOURCE_DIR}/doc/Doxyfile.in)
set (DOXYGEN_OUT ${CMAKE_BINARY_DIR}/Doxyfile)
# request to configure the file
configure_file (${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
# add target for doxygen documentation
add_custom_target(doc ${_DOC_ALL}
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM
)
else ()
if (BUILD_DOC_WITH_ALL)
message (SEND_ERROR ${BoldRed} "Could not find doxygen with dot to build code documentation." ${ColourReset})
else()
message (WARNING ${BoldYellow} "Install doxygen and graphviz to be able to build code documentation" ${ColourReset})
endif()
endif ()