Add CMake presets
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
- Domain
- build-system, ci-cd
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
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/CCF
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
microsoft/CCF#8184 · 1 comment ·
Maintainers usually reply within 1 day
-
Encrypt private ledger data directly into serialised entriesPossibly taken @achamayou claimed this 8 days ago. Opencrypto enhancement performance
Difficulty 5/5 Over a week Newbie friendliness 42/100
microsoft/CCF#8169 · 1 reaction · 2 assignees ·
Maintainers usually reply within 1 day
-
Hybrid (classical crypto + PQ) TLS in CCFMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
mesonbuild/wrapdb#2961 ·
Maintainers usually reply within 1 day
-
80 Instance - Raid - Northrend
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
azerothcore/azerothcore-wotlk#28075 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
objectionary/eo-graphs#80 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
scanaislop/aislop#476 ·
Maintainers usually reply within 1 day