Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add CMake presets

Open
#7,397 7 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
64/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
cmake, cpp

Research direction

Start by comparing the existing CI job YAML for normal, debug, clang-tidy, ASAN, and TSAN builds, including their CMake arguments and flags. Define the corresponding presets in CMakePreset.json so local and CI runs can use commands such as cmake --preset TSAN, and verify that each preset reproduces its existing job configuration.

Written by the indexing model from the issue text.

Description

We have a collection of sensible build targets, represented by the different jobs in the CI (eg: normal, debug, clang-tidy, ASAN, TSAN). Each includes some common args (-GNinja), some explicit args for the target build type (-DTSAN=ON), and some further flags to support this (eg excluding other features -DUSE_SNMALLOC=OFF, enabling other features -DWORKER_THREADS=2, disabling slow tests -DLONG_TESTS=OFF).

If one of these fails in CI, and you want to repro locally, you might need exactly the same arguments. Currently that's done by finding the correct bit of YAML and copy-pasting.

I think CMake Presets solve this in a cleaner way. So we'd create a CMakePreset.json specifying these arguments, and then can simply call cmake --preset TSAN either locally or in the CI, to get a consistent collection of args (and metadata and flags and who knows what else might be useful).

Dominant language
C++
Stars
874
Forks
264
Avg merge
1d 14h
Merged PRs (30d)
157

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/CCF

All issues in microsoft/CCF

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.