A sample project template that uses fmt via vcpkg featuring a fully integrated CI/CD pipeline to build, test and release the project.
This project template includes the following features:
- Package Manager: Utilizes
vcpkg
to manage dependencies. - Multiplatform Support: Supports Windows, Linux, and macOS
with
CMake
usingCMakePresets.json
for cross-platform build configurations. - CI/CD Integration: Offers a fully integrated CI/CD pipeline with GitHub
Actions, which includes:
Quality
Workflow: Builds and tests the project on all supported platforms.Release
Workflow: Handles building, testing, packaging, and releasing the project. Integrates withchangesets
for versioning and changelog management. Automatically uploads packages for supported platforms to GitHub Releases.- Binary Caching: Integrates
vcpkg's binary caching
with the
run-vcpkg
action to speed up builds and reduce CI costs.
To get started, simply clone this repository and run the following commands to set up the project:
Fist make sure to download vcpkg, which is managed as a submodule in this project:
git submodule update --init --recursive
Optionally, install node packages to get access to the changeset
CLI:
npm install
Now you can run the following commands to configure and build the project:
# Configure the project
cmake --preset vcpkg-fmt-template-ninja-multiconfiguration-vcpkg
# Build the project
cmake --build --preset vcpkg-fmt-template-ninja-multiconfiguration-vcpkg