1# Copyright (c) 2023 David Guibert
2# Copyright (c) 2024 Niclas Schroeter
5# SPDX-License-Identifier: Apache-2.0
7set_property(GLOBAL PROPERTY doc_can_use_system TRUE)
9 message(STATUS "DOC: enabled")
14 set(DOXYGEN_GENERATE_TREEVIEW YES) # optional. Also works without treeview
15 set(DOXYGEN_DISABLE_INDEX NO)
16 set(DOXYGEN_FULL_SIDEBAR NO)
17 set(DOXYGEN_HTML_EXTRA_STYLESHEET ${CMAKE_SOURCE_DIR}/doc/doxygen-awesome.css)
18 set(DOXYGEN_HTML_COLORSTYLE LIGHT) # required with Doxygen >= 1.9.5
20 add_executable(CMakeDoxygenFilter ${CMAKE_SOURCE_DIR}/doc/CMakeDoxygenFilter.cpp)
21 set(cmakedoxygenfilter_exe ${CMAKE_BINARY_DIR}/CMakeDoxygenFilter)
23 # use the CMake doxygen filter for .cmake files
24 set(DOXYGEN_FILTER_PATTERNS *.cmake=${cmakedoxygenfilter_exe})
25 set(DOXYGEN_FILE_PATTERNS *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.idl *.ddl *.odl *.h *.hh *.hxx *.hpp *.h++ *.l *.cs *.d *.php *.php4 *.php5 *.phtml *.inc *.m *.markdown *.md *.mm *.dox *.py *.pyw *.f90 *.f95 *.f03 *.f08 *.f18 *.f *.for *.vhd *.vhdl *.ucf *.qsf *.ice *.cmake)
27 set(DOXYGEN_EXTRACT_ALL YES)
28 set(DOXYGEN_QUIET YES)
29 set(DOXYGEN_USE_MDFILE_AS_MAINPAGE README.md)
31 doxygen_add_docs(doxygen
32 ${CMAKE_SOURCE_DIR}/README.md
33 ${CMAKE_SOURCE_DIR}/doc
34 ${CMAKE_SOURCE_DIR}/cmake
35 ${CMAKE_SOURCE_DIR}/projects
37 COMMENT "Generate documentation"
39 add_dependencies(doxygen CMakeDoxygenFilter)