71 lines
2.4 KiB
CMake
71 lines
2.4 KiB
CMake
# HDK Documentation Policy
|
|
include(GNUInstallDirs)
|
|
|
|
option(HDK_DOCS "Build documentation for ${PROJECT_NAME}" OFF)
|
|
|
|
if(HDK_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(${PROJECT_NAME}-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()
|