diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 000000000..22e3de72e --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,83 @@ +{ + "version": 2, + "configurePresets": [ + { + "name": "dev", + "displayName": "Build as debug", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "asan", + "displayName": "Build with Asan support.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-asan", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "ECM_ENABLE_SANITIZERS" : "'address;undefined'", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "unity", + "displayName": "Build with CMake unity support.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-unity", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_UNITY_BUILD": "ON", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "release", + "displayName": "Build as release mode.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + }, + { + "name": "profile", + "displayName": "profile", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-profile", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "clazy", + "displayName": "clazy", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-clazy", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + }, + "environment": { + "CXX": "clazy", + "CCACHE_DISABLE": "ON" + } + } + ], + "buildPresets": [ + { + "name": "dev", + "configurePreset": "dev" + }, + { + "name": "clazy", + "configurePreset": "clazy", + "environment": { + "CLAZY_CHECKS" : "level0,level1,detaching-member,ifndef-define-typo,isempty-vs-count,qrequiredresult-candidates,reserve-candidates,signal-with-return-value,unneeded-cast,function-args-by-ref,function-args-by-value,returning-void-expression,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch,old-style-connect,qstring-allocations,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,qstring-varargs,level2,detaching-member,heap-allocated-small-trivial-type,isempty-vs-count,qstring-varargs,qvariant-template-instantiation,raw-environment-function,reserve-candidates,signal-with-return-value,thread-with-slots,no-ctor-missing-parent-argument,no-missing-typeinfo", + "CCACHE_DISABLE" : "ON" + } + } + ] +}