diff options
author | kylo252 <59826753+kylo252@users.noreply.github.com> | 2022-09-19 10:58:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-19 10:58:26 +0200 |
commit | 875b58e0941ef62a75992ce0e6496bb7879e0bbe (patch) | |
tree | fb06a71e34e530ae9439b1186e1e021c8031b6d9 | |
parent | 7a091fdfafc5393263e74a8fdfe3467f9ae7349b (diff) | |
download | rneovim-875b58e0941ef62a75992ce0e6496bb7879e0bbe.tar.gz rneovim-875b58e0941ef62a75992ce0e6496bb7879e0bbe.tar.bz2 rneovim-875b58e0941ef62a75992ce0e6496bb7879e0bbe.zip |
build: add basic cmake-presets integration (#19128)
This allows a more declarative way of defining targets which may be easier to those not familiar with cmake quirks.
Example usage:
# get a list of pre-configured presets
cmake --list-presets
# configure a preset
cmake . --preset=default
# build it
cmake --build --preset=default
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | CMakePresets.json | 95 |
2 files changed, 97 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 11479346c7..be43c5cd90 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,5 @@ tags # vim patches /vim-*.patch + +/CMakeUserPresets.json diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000000..b2c93792b0 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,95 @@ +{ + "version": 3, + "configurePresets": [ + { + "name": "base", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build", + "hidden": true + }, + { + "name": "default", + "displayName": "RelWithDebInfo", + "description": "Enables optimizations (-Og or -O2) with debug information", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo" + }, + "inherits": [ + "base" + ] + }, + { + "name": "debug", + "displayName": "Debug", + "description": "Disables optimizations (-O0), enables debug information", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + }, + "inherits": [ + "base" + ] + }, + { + "name": "release", + "displayName": "Release", + "description": "Same as RelWithDebInfo, but disables debug information", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + }, + "inherits": [ + "base" + ] + }, + { + "name": "windows-default", + "displayName": "Windows x64 RelWithDebInfo", + "description": "Sets Ninja generator, enables optimizations with debug information for x64", + "generator": "Ninja", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo" + }, + "architecture": { + "value": "x64", + "strategy": "external" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "hostOS": [ + "Windows" + ] + } + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" + }, + "inherits": [ + "base" + ] + } + ], + "buildPresets": [ + { + "name": "default", + "configurePreset": "default" + }, + { + "name": "debug", + "configurePreset": "debug" + }, + { + "name": "release", + "configurePreset": "release" + }, + { + "name": "windows-default", + "configurePreset": "windows-default", + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" + } + } + ] +} |