# HDK Documentation Policy include(GNUInstallDirs) option(${PROJECT_NAME}_DOCS "Build documentation for ${PROJECT_NAME}" OFF) if(${PROJECT_NAME}_DOCS) find_package(Doxygen) if(DOXYGEN_FOUND) set(DOXYGEN_GENERATE_HTML YES) set(DOXYGEN_GENERATE_MAN YES) set(DOXYGEN_GENERATE_LATEX YES) set(DOXYGEN_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs) set(DOXYGEN_STRIP_FROM_PATH ${CMAKE_CURRENT_SOURCE_DIR}) set(DOXYGEN_EXTRACT_ALL YES) set(DOXYGEN_DIRECTORY_GRAPH YES) set(DOXYGEN_JAVADOC_BANNER YES) set(DOXYGEN_JAVADOC_AUTOBRIEF YES) set(DOXYGEN_DOT_IMAGE_FORMAT svg) set(DOXYGEN_INTERACTIVE_SVG YES) set(DOXYGEN_INTERNAL_DOCS YES) set(DOXYGEN_TIMESTAMP YES) set(DOXYGEN_RECURSIVE YES) set(DOXYGEN_TAB_SIZE 2) set(DOXYGEN_BUILTIN_STL_SUPPORT YES) set(DOXYGEN_HTML_DYNAMIC_SECTIONS YES) set(DOXYGEN_GENERATE_TREEVIEW YES) set(DOXYGEN_FULL_SIDEBAR YES) set(DOXYGEN_QUIET YES) set(DOXYGEN_SOURCE_BROWSER YES) set(DOXYGEN_VERBATIM_HEADERS YES) set(DOXYGEN_REFERENCED_BY_RELATION YES) set(DOXYGEN_REFERENCES_RELATION YES) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/INDEX.md") set(DOXYGEN_USE_MDFILE_AS_MAINPAGE INDEX.md) set(_hdk_doc_mainpage "${CMAKE_CURRENT_SOURCE_DIR}/INDEX.md") elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/README.md") set(DOXYGEN_USE_MDFILE_AS_MAINPAGE README.md) set(_hdk_doc_mainpage "${CMAKE_CURRENT_SOURCE_DIR}/README.md") endif() doxygen_add_docs(docs ${_hdk_doc_mainpage} ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${CMAKE_CURRENT_SOURCE_DIR}/src/ ${CMAKE_CURRENT_SOURCE_DIR}/*.md WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generate ${PROJECT_NAME} API Documentation" ) # Automatically install documentation install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs/html/ DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT ${PROJECT_NAME}_doc OPTIONAL) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs/man/man3/ DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 COMPONENT ${PROJECT_NAME}_doc OPTIONAL) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs/latex/ DESTINATION ${CMAKE_INSTALL_DOCDIR}/latex COMPONENT ${PROJECT_NAME}_doc OPTIONAL) else() message(WARNING "Doxygen not found, API documentation will not be generated for ${PROJECT_NAME}.") endif() endif()