Catalyst: A Modern, Declarative C++ Build System¶
Warning
Catalyst is currently in early development. The command line interface and features are subject to change.
Note
This documentation refers to binaries built from the HEAD of the master branch of https://github.com/CatalystCPP/catalyst-build-system
Catalyst is a meta build system for C++ that aims to bring the ease of use of declarative configuration to the C++ ecosystem. It prioritizes declarative configuration, reproducibility, and developer experience.
Key Features¶
- Declarative Configuration: Define your project with simple YAML files. No more complex CMake scripting.
- Profile Composition: Mix and match build configurations (e.g.,
debug,release,asan) easily. - Dependency Management: Built-in support for
vcpkg,gitrepositories, local packages, and system libraries. - Reproducible Builds: Designed for determinism and isolation.
Documentation¶
Getting Started¶
Core Concepts¶
- Configuration
- Profiles
- Toolchains
- Dependencies
- Preprocessor & Features
- Catalystignore
- C++20 Modules
- Hooks
- Workspaces
- Log
- Environment Variables
CLI Reference¶
- add
- bench
- build
- clean
- completion
- doc
- download
- feature-ls
- fetch
- fmt
- generate
- ide-sync
- init
- install
- lock
- pack
- profile-ls
- run
- test
- tidy