cmake/doxygen.cmake (47 lines of code) (raw):

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # check if Doxygen is installed find_package(Doxygen OPTIONAL_COMPONENTS dot) if(DOXYGEN_FOUND) message(STATUS "Building documentation") set(DOXYGEN_DOT_IMAGE_FORMAT svg) set(DOXYGEN_EXTRACT_ALL YES) set(DOXYGEN_EXTRACT_PRIVATE YES) set(DOXYGEN_EXTRACT_STATIC YES) set(DOXYGEN_GENERATE_TREEVIEW YES) if (TARGET Doxygen::dot) set(DOXYGEN_HAVE_DOT YES) endif() set(DOXYGEN_HIDE_UNDOC_RELATIONS NO) set(DOXYGEN_HTML_DYNAMIC_SECTIONS YES) set(DOXYGEN_INCLUDE_PATH "/usr/local/include;${PROJECT_SOURCE_DIR}/include") set(DOXYGEN_INTERACTIVE_SVG YES) set(DOXYGEN_JAVADOC_AUTOBRIEF YES) set(DOXYGEN_MACRO_EXPANSION YES) set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/docs") set(DOXYGEN_PROJECT_NAME "Reference Implementation for AWS IoT FleetWise") set(DOXYGEN_QUIET YES) set(DOXYGEN_SOURCE_BROWSER YES) set(DOXYGEN_TEMPLATE_RELATIONS YES) set(DOXYGEN_TOC_INCLUDE_HEADINGS 5) set(DOXYGEN_UML_LOOK YES) set(DOXYGEN_EXCLUDE_PATTERNS "*.md") set(DOXYGEN_DOT_GRAPH_MAX_NODES 100) foreach(directive FWE_FEATURE_VISION_SYSTEM_DATA FWE_FEATURE_ROS2) if(${directive}) set(DOXYGEN_PREDEFINED "${DOXYGEN_PREDEFINED};${directive}") endif() endforeach() doxygen_add_docs( doc_doxygen ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/include WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" ) # Note: From CMake 3.12 onwards, the ALL option is supported as part of # doxygen_add_docs # Until then, we have to set it manually set_target_properties(doc_doxygen PROPERTIES EXCLUDE_FROM_ALL FALSE) else (DOXYGEN_FOUND) message("Doxygen needs to be installed to generate the doxygen documentation") endif (DOXYGEN_FOUND)