Add Doxyfile and generate Doxygen docs in CI

This commit is contained in:
ROllerozxa 2024-05-27 16:34:13 +02:00
commit 0a903f1ab7
4 changed files with 93 additions and 0 deletions

45
.github/workflows/doxygen_deploy.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: doxygen_deploy
permissions:
contents: read
pages: write
id-token: write
on:
push:
paths:
- '.github/workflows/doxygen_deploy.yml'
- 'doc/'
- 'src/src/'
- 'src/tms/'
branches:
- master
jobs:
build:
if: github.repository == 'Bithack/principia'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
sudo apt-get install -y doxygen graphviz wget
- name: Generate Doxygen documentation
run: |
wget https://raw.githubusercontent.com/rollerozxa/doxygen-awesome-css/main/doxygen-awesome.css -O doc/doxygen-awesome.css
doxygen Doxyfile
touch doc/doxy/html/.nojekyll
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'doc/doxy/html/'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

4
.gitignore vendored
View file

@ -10,6 +10,10 @@ opengl32.dll
.cache/
compile_commands.json
# Doxygen documentation
doc/doxy/
doc/doxygen-awesome.css
# Model junk files
*.blend1
*.blend2

39
Doxyfile Normal file
View file

@ -0,0 +1,39 @@
# Project properties
PROJECT_NAME = Principia
PROJECT_LOGO = packaging/principia.png
# Parsing
JAVADOC_AUTOBRIEF = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
SORT_MEMBERS_CTORS_1ST = YES
WARN_IF_UNDOCUMENTED = NO
BUILTIN_STL_SUPPORT = YES
# Input
RECURSIVE = YES
STRIP_FROM_PATH = src
INPUT = doc/main_page.dox \
src/src/ src/tms/
EXCLUDE = src/src/Box2D/
# Dot graphs
HAVE_DOT = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
MAX_DOT_GRAPH_DEPTH = 3
DOT_MULTI_TARGETS = YES
DOT_IMAGE_FORMAT = svg
# Output
OUTPUT_DIRECTORY = doc/doxy/ # /tmp/doxy/
GENERATE_LATEX = NO
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
SEARCHENGINE = YES
DISABLE_INDEX = YES
GENERATE_TREEVIEW = YES
HTML_DYNAMIC_SECTIONS = YES
HTML_TIMESTAMP = YES
HTML_EXTRA_STYLESHEET = doc/doxygen-awesome.css

5
doc/main_page.dox Normal file
View file

@ -0,0 +1,5 @@
/** @mainpage Principia documentation
This site contains automatically generated documentation by Doxygen for Principia and its engine.
*/