-
Couldn't load subscription status.
- Fork 241
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).