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" + } + } + ] +}