33[ ![ CI] ( https://github.com/ramsafin/modern-cpp-project-template/actions/workflows/ci.yml/badge.svg )] ( https://github.com/ramsafin/modern-cpp-project-template/actions/workflows/ci.yml )
44[ ![ Clang-Format] ( https://github.com/ramsafin/modern-cpp-project-template/actions/workflows/clang-format.yml/badge.svg )] ( https://github.com/ramsafin/modern-cpp-project-template/actions/workflows/clang-format.yml )
55[ ![ Clang-Tidy] ( https://github.com/ramsafin/modern-cpp-project-template/actions/workflows/clang-tidy.yml/badge.svg )] ( https://github.com/ramsafin/modern-cpp-project-template/actions/workflows/clang-tidy.yml )
6+ [ ![ License] ( https://img.shields.io/badge/License-Apache_2.0-blue.svg )] ( LICENSE )
67
78A modern C++20+ starter project using CMake, GoogleTest, sanitizers, GitHub Actions, and developer tooling.
89
@@ -18,6 +19,7 @@ A modern C++20+ starter project using CMake, GoogleTest, sanitizers, GitHub Acti
1819- ✅ Clang-format + Clang-tidy + Pre-commit hook
1920- ✅ GitHub Actions CI for builds, tests, and formatting
2021- ✅ Install targets
22+ - ✅ Auto-generated API docs via Doxygen
2123
2224---
2325
@@ -68,13 +70,15 @@ ctest --preset gcc-Sanitize
6870### Code Style and Linting
6971
7072This project uses:
71- - ` .clang-format ` for formatting (enforced via pre-commit)
72- - ` .clang-tidy ` for linting ( static analysis)
73+ - ` .clang-format ` for formatting (enforced via pre-commit hook )
74+ - ` .clang-tidy ` for static analysis (linting )
7375
74- Run manually:
76+ If ` clang-format ` or ` clang-tidy ` is not found, the corresponding target will be skipped with a warning.
77+
78+ Run checks manually using custom CMake targets:
7579``` bash
76- clang-format -i src/ * .cpp include/ ** / * .hpp tests/ * .cpp
77- clang-tidy src/ * .cpp -p build/ gcc-RelWithDebInfo
80+ cmake --build --preset gcc-RelWithDebInfo --target clang-format
81+ cmake --build --preset gcc-RelWithDebInfo --target clang-tidy
7882```
7983
8084### Installation
@@ -101,6 +105,16 @@ Add this to your CMake call:
101105cmake -DCMAKE_PREFIX_PATH=/path/to/install ..
102106```
103107
108+ ### Documentation
109+
110+ Documentation is generated using Doxygen. Docs are built from ` Doxyfile ` , with output in ` docs/html/ ` .
111+
112+ Generate docs locally via custom CMake target:
113+ ``` bash
114+ cmake --preset gcc-RelWithDebInfo
115+ cmake --build --preset gcc-RelWithDebInfo --target docs
116+ ```
117+
104118## License
105119
106120This project is licensed under the Apache License 2.0.
0 commit comments