You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a tracked CMakePresets.json to ITK with common build configurations, reducing the barrier for developers and CI to use consistent, well-tested settings. Currently every developer invents their own cmake flags; a shared presets file would codify the known-good configurations.
Raised by @blowekamp in #6040 — he maintains a local CMakeUserPresets.json with presets like "development", "wrapping", "system-libraries", and "doxygen", and asked whether this should be adopted more widely.
Proposal
Add a tracked
CMakePresets.jsonto ITK with common build configurations, reducing the barrier for developers and CI to use consistent, well-tested settings. Currently every developer invents their own cmake flags; a shared presets file would codify the known-good configurations.Raised by @blowekamp in #6040 — he maintains a local
CMakeUserPresets.jsonwith presets like "development", "wrapping", "system-libraries", and "doxygen", and asked whether this should be adopted more widely.Background
CMakeUserPresets.jsonto.gitignore, enabling user-local presetsCMakePresets.jsonexists yet — ITK has no shared preset definitionspixi run configure-ci) serves a similar role for CI but doesn't help developers using cmake directlySuggested presets
devRelease,BUILD_TESTING=ON,BUILD_SHARED_LIBS=ON, Ninjadev-debugDebug,BUILD_TESTING=ON,BUILD_SHARED_LIBS=ONwrappingRelease,ITK_WRAP_PYTHON=ON,BUILD_SHARED_LIBS=OFFminimalMinSizeRel,BUILD_TESTING=OFF,BUILD_EXAMPLES=OFFasanRelWithDebInfo,-fsanitize=addressThese would live in
CMakePresets.json(tracked in git). Developers can extend/override viaCMakeUserPresets.json(gitignored, per PR #2870).Usage
Questions to resolve
cmake --presetinternally?References
CMakeUserPresets.jsonto.gitignore