## # Generate sourcecode documentation with Doxygen # Use ${PROJECT_SOURCE_DIR}/Doxyfile.in # Use option BUILD_DOC to enable/disable generation (default ON) # Write output to ${PROJECT_BINARY_DIR}/doc ## include("${CMAKE_CURRENT_LIST_DIR}/HelperFunctions.txt") option(BUILD_DOC "Generate documentation (Doxygen)" ON) if (BUILD_DOC) find_package(Doxygen) if(NOT DOXYGEN_FOUND) message("-- Doxygen not found on system, skipping generation of sourcecode documentation") return() endif() set(PROJECT_DOXYGEN_DIR "${PROJECT_BINARY_DIR}/doc") set(PROJECT_DOXYGEN_INFILE "${PROJECT_SOURCE_DIR}/Doxyfile.in") set(PROJECT_DOXYGEN_OUTFILE "${PROJECT_DOXYGEN_DIR}/Doxyfile") set(PROJECT_DOXYGEN_TEMPLATE_DIR "${CMAKE_CURRENT_LIST_DIR}/templates/Doxygen") # set(PROJECT_DOXYGEN_HTML_EXTRA_STYLESHEET "${PROJECT_DOXYGEN_TEMPLATE_DIR}/solar.css") # set(PROJECT_DOXYGEN_LAYOUT_FILE "${PROJECT_DOXYGEN_TEMPLATE_DIR}/metro.xml") set(PROJECT_DOXYGEN_HTML_HEADER "${PROJECT_DOXYGEN_TEMPLATE_DIR}/header.html") set(PROJECT_DOXYGEN_HTML_FOOTER "${PROJECT_DOXYGEN_TEMPLATE_DIR}/footer.html") if(NOT EXISTS "${PROJECT_DOXYGEN_INFILE}") set(PROJECT_DOXYGEN_INFILE ${PROJECT_DOXYGEN_TEMPLATE_DIR}/Doxyfile.in) endif() file(MAKE_DIRECTORY "${PROJECT_DOXYGEN_DIR}") if(IS_DIRECTORY "${PROJECT_SOURCE_DIR}/doc") message("-- Doxygen copy resources") file(COPY "${PROJECT_SOURCE_DIR}/doc" DESTINATION "${PROJECT_DOXYGEN_DIR}") endif() message("-- Doxygen configuration: ${PROJECT_DOXYGEN_INFILE}") configure_file ( "${PROJECT_DOXYGEN_INFILE}" "${PROJECT_DOXYGEN_OUTFILE}" ) add_custom_target(di-doc ${DOXYGEN_EXECUTABLE} ${PROJECT_DOXYGEN_DIR}/Doxyfile WORKING_DIRECTORY ${PROJECT_DOXYGEN_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) di_get_random_port(PORT) add_custom_target(di-doc-http python2 -m SimpleHTTPServer ${PORT} WORKING_DIRECTORY ${PROJECT_DOXYGEN_DIR} ) else() message("-- Doxygen disabled") endif()