# first we can indicate the documentation build as an option and set it to ON by default
|
option(BUILD_DOC "Build documentation" ON)
|
|
# check if Doxygen is installed
|
find_package(Doxygen)
|
if (DOXYGEN_FOUND)
|
# set input and output files
|
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
|
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
|
# request to configure the file
|
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
|
message("Doxygen build started")
|
|
# note the option ALL which allows to build the docs together with the application
|
add_custom_target( doc_doxygen ALL
|
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
COMMENT "Generating API documentation with Doxygen"
|
VERBATIM )
|
|
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/api"
|
DESTINATION doc
|
)
|
|
else (DOXYGEN_FOUND)
|
message(STATUS "Doxygen need to be installed to generate the doxygen documentation. To install type common `sudo apt install -y doxygen texlive-latex-base graphviz` ")
|
endif (DOXYGEN_FOUND)
|