@@ -7,50 +7,62 @@ set(DOXYGEN_ENABLE_PREPROCESSING NO) # https://stackoverflow.com/a/26043120/3049
77set (DOXYGEN_GENERATE_HTML YES CACHE BOOL "Generate Doxygen HTML" )
88set (DOXYGEN_GENERATE_LATEX YES CACHE BOOL "Generate Doxygen LaTeX" )
99set (DOXYGEN_GENERATE_XML YES ) # Needed by Sphinx
10+ set (DOXYGEN_PROJECT_NAME "${PROJECT_NAME} " CACHE INTERNAL "" )
11+ set (DOXYGEN_PROJECT_BRIEF "${PROJECT_DESCRIPTION} " CACHE INTERNAL "" )
12+ set (DOXYGEN_PROJECT_NUMBER "${PROJECT_VERSION} " CACHE INTERNAL "" )
1013set (DOXYGEN_PROJECT_LOGO ${DOXYGEN_DIR} /logo.png)
14+ set (DOXYGEN_PROJECT_ICON ${DOXYGEN_DIR} /logo.png)
1115set (DOXYGEN_OUTPUT_DIRECTORY ${DOXYGEN_DIR} /build)
16+ set (DOXYGEN_EXTRACT_ALL YES )
17+ set (DOXYGEN_EXTRACT_PRIVATE YES )
18+ set (DOXYGEN_EXTRACT_STATIC YES )
19+ set (DOXYGEN_EXTRACT_LOCAL_CLASSES YES )
20+ set (DOXYGEN_FULL_PATH_NAMES YES )
21+ set (DOXYGEN_WARN_IF_UNDOCUMENTED YES )
22+ set (DOXYGEN_WARN_NO_PARAMDOC YES )
23+ set (DOXYGEN_STRIP_FROM_PATH ${CMAKE_SOURCE_DIR} )
24+ set (DOXYGEN_RECURSIVE YES )
1225set (DOXYGEN_GENERATE_TREEVIEW YES ) # Required by doxygen-awesome-css
1326set (DOXYGEN_DISABLE_INDEX NO ) # Required by doxygen-awesome-css
1427set (DOXYGEN_FULL_SIDEBAR NO ) # Required by doxygen-awesome-css
15- set (DOXYGEN_HTML_COLORSTYLE LIGHT) # Required by doxygen-awesome-css
16- set (DOXYGEN_HTML_HEADER ${DOXYGEN_DIR} /header.html)
17- set (DOXYGEN_HTML_FOOTER ${DOXYGEN_DIR} /footer.html)
18- set (DOXYGEN_HTML_EXTRA_FILES
19- ${CMAKE_CURRENT_SOURCE_DIR} /LICENSE
20- ${DOXYGEN_DIR} /logo.png
21- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
22- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
23- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-paragraph-link.js
24- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-interactive-toc.js
25- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-tabs.js)
26- set (DOXYGEN_HTML_EXTRA_STYLESHEET
27- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome.css
28- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-sidebar-only.css
29- ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css)
30-
31- set (DOXYGEN_IMAGE_PATH ${DOXYGEN_DIR} /logo.png)
28+ set (DOXYGEN_HTML_COLORSTYLE "TOGGLE" )
3229
33- if (DOXYGEN_FOUND)
34- message (STATUS "-- Doxygen documentation enabled through 'doxygen' target." )
30+ # === Doxygen Awesome CSS
31+ if (DOXYGEN_VERSION VERSION_LESS 1.14.0)
32+ if (NOT EXISTS "${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome.css" )
33+ message (WARNING "doxygen-awesome-css submodule not found. Did you run `git submodule update --init --recursive`?" )
34+ endif ()
35+ set (DOXYGEN_HTML_COLORSTYLE LIGHT) # Required by doxygen-awesome-css
36+ set (DOXYGEN_HTML_HEADER ${DOXYGEN_DIR} /header.html)
37+ set (DOXYGEN_HTML_FOOTER ${DOXYGEN_DIR} /footer.html)
38+ set (DOXYGEN_HTML_EXTRA_FILES
39+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
40+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
41+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-paragraph-link.js
42+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-interactive-toc.js
43+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-tabs.js)
44+ set (DOXYGEN_HTML_EXTRA_STYLESHEET
45+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome.css
46+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-sidebar-only.css
47+ ${DOXYGEN_DIR} /doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css)
48+ endif ()
3549
36- # Add Table of Contents to markdown files
37- file (GLOB md_files ${CMAKE_SOURCE_DIR} /docs/*.md )
3850
39- file ( COPY ${CMAKE_SOURCE_DIR} /README.md DESTINATION " ${CMAKE_CURRENT_BINARY_DIR} /md_files" )
40- file ( COPY ${md_files} DESTINATION " ${CMAKE_CURRENT_BINARY_DIR} /md_files/docs " )
51+ if (DOXYGEN_FOUND )
52+ message ( STATUS "-- Doxygen documentation enabled through 'doxygen' target. " )
4153
42- file (GLOB_RECURSE md_files "${CMAKE_CURRENT_BINARY_DIR} /md_files/*.md" )
43- foreach (filename ${md_files} )
44- file (READ ${filename} MD_TEXT )
45- # Insert [TOC] immediately after the first level-1 header line.
46- string (REGEX REPLACE "^(# [^\n ]+)\r ?\n (.+)" "\\ 1\n [TOC]\n\\ 2" MD_TEXT_MODIFIED "${MD_TEXT} " )
47- file (WRITE ${filename} "${MD_TEXT_MODIFIED} " )
48- endforeach ()
54+ set (DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_SOURCE_DIR} /README.md" )
55+ file (GLOB md_files "${CMAKE_SOURCE_DIR} /docs/*.md" )
4956
50- set (DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_CURRENT_BINARY_DIR} /md_files/README.md" )
57+ # Make these files available to Doxygen
58+ set (DOXYGEN_HTML_EXTRA_FILES
59+ ${DOXYGEN_HTML_EXTRA_FILES}
60+ ${CMAKE_SOURCE_DIR} /LICENSE
61+ )
5162
5263 doxygen_add_docs (doxygen
5364 ${md_files}
65+ README.md
5466 LICENSE
5567 ${SOURCE_DIR} )
5668endif ()
0 commit comments