To use, invoke `cmake` with argument `--preset dev-mode`. Solves one item in #1235. One disadvantage over `./configure --enable-dev-mode` is that CMake does not provide a way to "hide" presets from users. That is, `cmake --list-presets` will list dev-mode, and it will also appear in `cmake-gui`, even though it's not selectable there due to bug https://gitlab.kitware.com/cmake/cmake/-/issues/23341. (So in our case, that's probably rather a feature than a bug.) We curently use version 3 presets which require CMake 3.21+. Unfortunately, CMake versions before 3.19 may ignore the `--preset` argument silently. So if the preset is not picked up, make sure you have a recent enough CMake version. More unfortunately, we can't even spell this warning out in CMakePresets.json because CMake does not support officially support comments in JSON, see - https://gitlab.kitware.com/cmake/cmake/-/issues/21858 - https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5853 . We could use a hack hinted at in https://gitlab.kitware.com/cmake/cmake/-/issues/21858#note_908543 but that's risky, because it could simply break for future versions, and we probably want to use presets not only for dev mode.
20 lines
484 B
JSON
20 lines
484 B
JSON
{
|
|
"cmakeMinimumRequired": {"major": 3, "minor": 21, "patch": 0},
|
|
"version": 3,
|
|
"configurePresets": [
|
|
{
|
|
"name": "dev-mode",
|
|
"displayName": "Development mode (intended only for developers of the library)",
|
|
"cacheVariables": {
|
|
"SECP256K1_EXPERIMENTAL": "ON",
|
|
"SECP256K1_ENABLE_MODULE_RECOVERY": "ON",
|
|
"SECP256K1_BUILD_EXAMPLES": "ON"
|
|
},
|
|
"warnings": {
|
|
"dev": true,
|
|
"uninitialized": true
|
|
}
|
|
}
|
|
]
|
|
}
|