45 lines
1.5 KiB
CMake
45 lines
1.5 KiB
CMake
if(NOT BUILD_DOCS)
|
|
return()
|
|
endif()
|
|
|
|
find_package(Doxygen REQUIRED doxygen OPTIONAL_COMPONENTS dot mscgen dia)
|
|
|
|
if(NOT DOXYGEN_FOUND)
|
|
message(ERROR "Doxygen is needed to build documentation, please install it")
|
|
endif()
|
|
|
|
set(DOXYGEN_ALPHABETICAL_INDEX NO)
|
|
set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
|
|
set(DOXYGEN_CASE_SENSE_NAMES NO)
|
|
set(DOXYGEN_CLASS_DIAGRAMS YES)
|
|
set(DOXYGEN_DISTRIBUTE_GROUP_DOC YES)
|
|
set(DOXYGEN_EXCLUDE build)
|
|
set(DOXYGEN_EXTRACT_ALL YES)
|
|
set(DOXYGEN_EXTRACT_LOCAL_CLASSES NO)
|
|
set(DOXYGEN_FILE_PATTERNS *.hpp)
|
|
set(DOXYGEN_GENERATE_TREEVIEW YES)
|
|
set(DOXYGEN_HIDE_FRIEND_COMPOUNDS YES)
|
|
set(DOXYGEN_HIDE_IN_BODY_DOCS YES)
|
|
set(DOXYGEN_HIDE_UNDOC_CLASSES YES)
|
|
set(DOXYGEN_HIDE_UNDOC_MEMBERS YES)
|
|
set(DOXYGEN_JAVADOC_AUTOBRIEF YES)
|
|
set(DOXYGEN_QT_AUTOBRIEF YES)
|
|
set(DOXYGEN_QUIET YES)
|
|
set(DOXYGEN_RECURSIVE YES)
|
|
set(DOXYGEN_REFERENCED_BY_RELATION YES)
|
|
set(DOXYGEN_REFERENCES_RELATION YES)
|
|
set(DOXYGEN_SORT_BY_SCOPE_NAME YES)
|
|
set(DOXYGEN_SORT_MEMBER_DOCS NO)
|
|
set(DOXYGEN_SOURCE_BROWSER YES)
|
|
set(DOXYGEN_STRIP_CODE_COMMENTS NO)
|
|
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md")
|
|
|
|
doxygen_add_docs(doc "${CMAKE_SOURCE_DIR}/README.md" "${CMAKE_SOURCE_DIR}/src/example_c" "${CMAKE_SOURCE_DIR}/src/example_cpp"
|
|
ALL COMMENT "Generate HTML documentation")
|
|
|
|
add_custom_target(
|
|
open-docs
|
|
COMMAND ${CMAKE_COMMAND} -E env xdg-open ${CMAKE_SOURCE_DIR}/build/docs/html/index.html
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/build/docs/html
|
|
COMMENT "Opening Doxygen documentation")
|