# 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)