Skip to the content.

cppboot

cppboot scaffolds a complete, opinionated C++ project so you can start shipping code instead of wiring build systems.

pip install cppboot
cppboot -n myproj
cd myproj && make && make test

What you get

Every generated project is ready for multi-platform development and release:

Area Included
Build CMake (C++20), GNU Makefile, Windows build.bat, CMakePresets.json
Versioning Root VERSION file (single source of truth) → CMake, CLI --version, release checks
Library + app Static library by default (--shared optional), thin src/main.cpp entrypoint
Deps FetchContent (on by default): CLI11, nlohmann/json, spdlog, GoogleTest, Google Benchmark
Quality clang-format, warnings-as-errors, ASan+UBSan workflow, .clangd
Docs Doxygen Doxyfile, README.md, AGENTS.md for humans and coding agents
IDE VS Code (clangd, CMake Tools, CodeLLDB, C++ TestMate), optional Vim + ctags
CI/CD GitHub Actions: multi-OS CI, sanitizers, tag/dispatch Release with zip assets
Android Optional Prefab AAR package, device tests, and CI (guide)
iOS Optional XCFramework package, Simulator tests, and CI (guide)
Web Optional Emscripten package: canvas game demo, browser tests, and CI (guide)

Platform guides

Platform Status Guide
Linux / macOS / Windows default Generated CI covers all three out of the box
Android --with-android-ci Android package guide
iOS --with-ios-ci iOS package guide
Web / Emscripten --with-web-ci Web package guide

CLI overview

cppboot [-n NAME] [options]

Core opt-ins:

Flag Default Description
--with-modules off C++20 modules layout
--with-android-ci off Android Prefab AAR package + CI (guide)
--with-ios-ci off iOS XCFramework package + CI (guide)
--with-web-ci off Web/Emscripten package + canvas game demo + CI (guide)
--shared off Shared library instead of static
--github off Create a public remote with gh and push
--license apache-2.0 apache-2.0, mit, bsd-3-clause, gpl-3.0, lgpl-3.0, mpl-2.0, zlib, unlicense

Opt-outs (features are on unless disabled): --no-vim, --no-ctags, --no-vscode, --no-github-actions, --no-codespaces, --no-community-docs, --no-git, --no-fmt.

See the repository README for the complete reference.