find_package(Doxygen) option(BUILD_DOCUMENTATION "Create and install the HTML based API documentation (requires Doxygen)" OFF) if(BUILD_DOCUMENTATION) if(NOT DOXYGEN_FOUND) message(FATAL_ERROR "Doxygen is needed to build the documentation.") endif() file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html") set(doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/src/Doxyfile.in) set(doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) configure_file(${doxyfile_in} ${doxyfile} @ONLY) add_custom_target(doc COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${DIST_DOCDIR}) install(DIRECTORY doc/ DESTINATION ${DIST_DOCDIR}/html) endif() # Sphinx Documentation install(DIRECTORY DESTINATION "${DIST_DOCTMP}/sphinx") install(DIRECTORY DESTINATION "${DIST_DOCTMP}/sphinx/templates") # Collect all sphinx documentation files from all projects file(GLOB SPHINX_DOC_DIRS LIST_DIRECTORIES true LIST_FILES false "${PROJECT_SOURCE_DIR}/plugins/processing/*") foreach(DOCDIR ${SPHINX_DOC_DIRS}) if(IS_DIRECTORY "${DOCDIR}/doc/boxes") INSTALL(DIRECTORY "${DOCDIR}/doc/boxes" DESTINATION ${DIST_DOCTMP}/sphinx/source) endif() endforeach() INSTALL(DIRECTORY sphinx/source DESTINATION ${DIST_DOCTMP}/sphinx) INSTALL(FILES sphinx/make.bat DESTINATION ${DIST_DOCTMP}/sphinx) INSTALL(FILES sphinx/Makefile DESTINATION ${DIST_DOCTMP}/sphinx) INSTALL(FILES sphinx/build-documentation.cmd DESTINATION ${DIST_DOCTMP}) INSTALL(FILES sphinx/build-documentation.sh DESTINATION ${DIST_DOCTMP})