CMake Policy Implementation changes.
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# 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()
|
||||
Reference in New Issue
Block a user