Chinmay's C++ Project Template
  • Dockerfile 41.7%
  • CMake 38.9%
  • Just 16.1%
  • C++ 3.3%
Find a file Use this template
2026-02-08 11:28:13 -08:00
.devcontainer Shadow the build directory. 2026-02-08 11:28:13 -08:00
.github Bump actions/checkout from 4 to 6 (#7) 2026-02-08 10:55:21 -08:00
assets Setup new C++ project template. 2024-10-12 11:43:18 -07:00
src Use VCPKG by default. 2025-04-23 11:32:44 -07:00
third_party Use VCPKG by default. 2025-04-23 11:32:44 -07:00
tools/cmake Setup new C++ project template. 2024-10-12 11:43:18 -07:00
.clang-format Update .clang-format 2025-03-27 23:18:26 -07:00
.clangd Fixup clangd paths. 2025-12-25 16:32:25 -08:00
.gitattributes Update .gitattributes to include assets directory. 2025-11-25 18:10:55 -08:00
.gitignore Setup new C++ project template. 2024-10-12 11:43:18 -07:00
.gitmodules Use VCPKG by default. 2025-04-23 11:32:44 -07:00
CMakeLists.txt Enable recommended warnings. 2025-12-05 12:06:06 -08:00
CMakePresets.json Add devcontainer and cleanup build rules. (#6) 2026-02-08 10:51:42 -08:00
justfile Add devcontainer and cleanup build rules. (#6) 2026-02-08 10:51:42 -08:00
LICENSE Update LICENSE 2025-01-30 10:53:40 -08:00
new_cpp_project.sublime-project Fixup clangd paths. 2025-12-25 16:32:25 -08:00
README.md Update README. 2025-11-29 18:00:18 -08:00
vcpkg-configuration.json Update baseline. 2025-11-26 10:03:51 -08:00
vcpkg.json Bump github.com/microsoft/vcpkg from master to 2026.01.16 (#5) 2026-01-31 18:33:09 -08:00

A New C++ Project

This is a project template Chinmay uses for his C++ projects. Clone this repository template and replace the occurrences of new_cpp_project to get started.

Prerequisites

  • CMake (3.22 or above).
  • Git.
  • Ninja.
  • Just, a task runner.
  • A C11 and C++20 compiler.
  • vcpkg for package management.
    • Ensure that the VCPKG_ROOT environment variable is present and valid.

Building

Important

Make sure you have completed all pre-requisites.

This project uses the CMake build system but use just for tasks. Using just is optional but makes things easier.

  • Fetch all submodules.
    just sync
    
  • Generate the default build directory.
    just setup
    
  • Build the default CMake preset.
    just build