···11cmake_minimum_required(VERSION 3.16)
22-project(vektor VERSION 0.1.0 LANGUAGES C CXX)
22+project(kestrel VERSION 0.1.0 LANGUAGES C CXX)
33+44+set(PROJECT_AUTHORS "Olle Lögdahl")
55+set(PROJECT_COPYRIGHT "2025")
3647LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
58LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/sanitizers")
···811912add_subdirectory(vendor)
1013add_subdirectory(libvektor)
1414+1515+add_subdirectory(docs)
···11+#find_program(SPHINX_EXECUTABLE sphinx-build REQUIRED)
22+#
33+#configure_file(
44+# "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in"
55+# "${CMAKE_CURRENT_BINARY_DIR}/conf.py"
66+# @ONLY
77+#)
88+#
99+#add_custom_target(docs
1010+# COMMAND ${SPHINX_EXECUTABLE}
1111+# -W -n -b html
1212+# -c "${CMAKE_CURRENT_BINARY_DIR}"
1313+# "${CMAKE_CURRENT_SOURCE_DIR}"
1414+# "${CMAKE_CURRENT_BINARY_DIR}/html"
1515+# COMMENT "Building HTML documentation with Sphinx"
1616+# VERBATIM
1717+#)
1818+1919+find_program(UV_EXECUTABLE uv REQUIRED)
2020+find_package(Doxygen REQUIRED)
2121+2222+set(DOXYGEN_GENERATE_XML YES)
2323+set(DOXYGEN_XML_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/xml")
2424+2525+doxygen_add_docs(doxygen_xml
2626+ "${PROJECT_SOURCE_DIR}/libvektor/include"
2727+ COMMENT "Generating XML API data with Doxygen"
2828+)
2929+3030+configure_file(
3131+ "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in"
3232+ "${CMAKE_CURRENT_BINARY_DIR}/conf.py"
3333+ @ONLY
3434+)
3535+3636+add_custom_target(docs
3737+ COMMAND ${UV_EXECUTABLE} run
3838+ --with sphinx>=8.1.3,sphinx_rtd_theme,breathe
3939+ --no-project
4040+ sphinx-build
4141+ -W -n -b html
4242+ -c "${CMAKE_CURRENT_BINARY_DIR}"
4343+ "${CMAKE_CURRENT_SOURCE_DIR}"
4444+ "${CMAKE_CURRENT_BINARY_DIR}/html"
4545+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
4646+ COMMENT "Building HTML documentation with Sphinx"
4747+ DEPENDS doxygen_xml
4848+ VERBATIM
4949+)
5050+5151+add_custom_target(docs-watch
5252+ COMMAND ${UV_EXECUTABLE} run
5353+ --with sphinx-autobuild>=8.1.3,sphinx_rtd_theme,breathe
5454+ --no-project
5555+ sphinx-autobuild
5656+ -W -n -b html
5757+ -c "${CMAKE_CURRENT_BINARY_DIR}"
5858+ "${CMAKE_CURRENT_SOURCE_DIR}"
5959+ "${CMAKE_CURRENT_BINARY_DIR}/html"
6060+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
6161+ COMMENT "Building HTML documentation with Sphinx"
6262+ DEPENDS doxygen_xml
6363+ VERBATIM
6464+)
-20
docs/Makefile
···11-# Minimal makefile for Sphinx documentation
22-#
33-44-# You can set these variables from the command line, and also
55-# from the environment for the first two.
66-SPHINXOPTS ?=
77-SPHINXBUILD ?= sphinx-build
88-SOURCEDIR = .
99-BUILDDIR = _build
1010-1111-# Put it first so that "make" without argument is like "make help".
1212-help:
1313- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
1414-1515-.PHONY: help Makefile
1616-1717-# Catch-all target: route all unknown targets to Sphinx using the new
1818-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
1919-%: Makefile
2020- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
···11+API
22+==========
33+44+.. note::
55+ The API docs are generated from :file:`libvektor/include/vektor/vektor.h`.
66+ To update this documentation, please edit the header file.
77+88+.. doxygenfile:: vektor/vektor.h
-45
docs/conf.py
···11-# Configuration file for the Sphinx documentation builder.
22-#
33-# For the full list of built-in configuration values, see the documentation:
44-# https://www.sphinx-doc.org/en/master/usage/configuration.html
55-66-# -- Project information -----------------------------------------------------
77-# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
88-99-project = "kestrel"
1010-copyright = "2025, Olle Lögdahl"
1111-author = "Olle Lögdahl"
1212-release = "0.1"
1313-1414-# -- General configuration ---------------------------------------------------
1515-# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
1616-1717-extensions = []
1818-1919-templates_path = ["_templates"]
2020-exclude_patterns = [
2121- "_build",
2222- "Thumbs.db",
2323- ".DS_Store",
2424- ".venv",
2525- "pyproject.toml",
2626- "uv.lock",
2727-]
2828-2929-# -- Options for HTML output -------------------------------------------------
3030-# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
3131-3232-html_theme = "sphinx_rtd_theme"
3333-html_static_path = ["_static"]
3434-html_sidebars = {
3535- "**": [
3636- "about.html",
3737- "searchfield.html",
3838- "navigation.html",
3939- "relations.html",
4040- "donate.html",
4141- ]
4242-}
4343-html_theme_options = {
4444- "display_version": "true",
4545-}
···11Introduction
22-=====================
22+============
3344Kestrel is a modern GPGPU & Rendering API in similar vein to `Vulkan`_,
55however simlifying the API though focusing on modern hardware. It is
···3838 self
3939 motivation
4040 license
4141+ api
41424243.. toctree::
4344 :maxdepth: 1
-35
docs/make.bat
···11-@ECHO OFF
22-33-pushd %~dp0
44-55-REM Command file for Sphinx documentation
66-77-if "%SPHINXBUILD%" == "" (
88- set SPHINXBUILD=sphinx-build
99-)
1010-set SOURCEDIR=.
1111-set BUILDDIR=_build
1212-1313-%SPHINXBUILD% >NUL 2>NUL
1414-if errorlevel 9009 (
1515- echo.
1616- echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
1717- echo.installed, then set the SPHINXBUILD environment variable to point
1818- echo.to the full path of the 'sphinx-build' executable. Alternatively you
1919- echo.may add the Sphinx directory to PATH.
2020- echo.
2121- echo.If you don't have Sphinx installed, grab it from
2222- echo.https://www.sphinx-doc.org/
2323- exit /b 1
2424-)
2525-2626-if "%1" == "" goto help
2727-2828-%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
2929-goto end
3030-3131-:help
3232-%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
3333-3434-:end
3535-popd
+1-1
docs/motivation.rst
···11Motivation
22-====
22+==========
3344These ideas are not only our own, but shared with other experts in the
55field (`Sebastian Aaltonen`_).