Skip to content

Add CMake presets #7397

@eddyashton

Description

@eddyashton

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions