|
| 1 | +{ |
| 2 | + "version": 2, |
| 3 | + "cmakeMinimumRequired": { |
| 4 | + "major": 3, |
| 5 | + "minor": 14, |
| 6 | + "patch": 0 |
| 7 | + }, |
| 8 | + "configurePresets": [ |
| 9 | + { |
| 10 | + "name": "cmake-pedantic", |
| 11 | + "hidden": true, |
| 12 | + "warnings": { |
| 13 | + "dev": true, |
| 14 | + "deprecated": true, |
| 15 | + "uninitialized": true, |
| 16 | + "unusedCli": true, |
| 17 | + "systemVars": false |
| 18 | + }, |
| 19 | + "errors": { |
| 20 | + "dev": true, |
| 21 | + "deprecated": true |
| 22 | + } |
| 23 | + }, |
| 24 | + { |
| 25 | + "name": "dev-mode", |
| 26 | + "hidden": true, |
| 27 | + "inherits": "cmake-pedantic", |
| 28 | + "cacheVariables": { |
| 29 | + "CrowCpp_DEVELOPER_MODE": "ON" |
| 30 | + } |
| 31 | + }, |
| 32 | + { |
| 33 | + "name": "cppcheck", |
| 34 | + "hidden": true, |
| 35 | + "cacheVariables": { |
| 36 | + "CMAKE_CXX_CPPCHECK": "cppcheck;--inline-suppr" |
| 37 | + } |
| 38 | + }, |
| 39 | + { |
| 40 | + "name": "clang-tidy", |
| 41 | + "hidden": true, |
| 42 | + "cacheVariables": { |
| 43 | + "CMAKE_CXX_CLANG_TIDY": "clang-tidy;--header-filter=^${sourceDir}/" |
| 44 | + } |
| 45 | + }, |
| 46 | + { |
| 47 | + "name": "ci-std", |
| 48 | + "description": "This preset makes sure the project actually builds with at least the specified standard", |
| 49 | + "hidden": true, |
| 50 | + "cacheVariables": { |
| 51 | + "CMAKE_CXX_EXTENSIONS": "OFF", |
| 52 | + "CMAKE_CXX_STANDARD": "17", |
| 53 | + "CMAKE_CXX_STANDARD_REQUIRED": "ON" |
| 54 | + } |
| 55 | + }, |
| 56 | + { |
| 57 | + "name": "flags-gcc-clang", |
| 58 | + "description": "These flags are supported by both GCC and Clang", |
| 59 | + "hidden": true, |
| 60 | + "cacheVariables": { |
| 61 | + "CMAKE_CXX_FLAGS": "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS=1 -fstack-protector-strong -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wcast-qual -Wformat=2 -Wundef -Werror=float-equal -Wshadow -Wcast-align -Wunused -Wnull-dereference -Wdouble-promotion -Wimplicit-fallthrough -Wextra-semi -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast", |
| 62 | + "CMAKE_EXE_LINKER_FLAGS": "-Wl,--allow-shlib-undefined,--as-needed,-z,noexecstack,-z,relro,-z,now,-z,nodlopen", |
| 63 | + "CMAKE_SHARED_LINKER_FLAGS": "-Wl,--allow-shlib-undefined,--as-needed,-z,noexecstack,-z,relro,-z,now,-z,nodlopen" |
| 64 | + } |
| 65 | + }, |
| 66 | + { |
| 67 | + "name": "flags-appleclang", |
| 68 | + "hidden": true, |
| 69 | + "cacheVariables": { |
| 70 | + "CMAKE_CXX_FLAGS": "-fstack-protector-strong -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wcast-qual -Wformat=2 -Wundef -Werror=float-equal -Wshadow -Wcast-align -Wunused -Wnull-dereference -Wdouble-promotion -Wimplicit-fallthrough -Wextra-semi -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast" |
| 71 | + } |
| 72 | + }, |
| 73 | + { |
| 74 | + "name": "flags-msvc", |
| 75 | + "description": "Note that all the flags after /W4 are required for MSVC to conform to the language standard", |
| 76 | + "hidden": true, |
| 77 | + "cacheVariables": { |
| 78 | + "CMAKE_CXX_FLAGS": "/sdl /guard:cf /utf-8 /diagnostics:caret /w14165 /w44242 /w44254 /w44263 /w34265 /w34287 /w44296 /w44365 /w44388 /w44464 /w14545 /w14546 /w14547 /w14549 /w14555 /w34619 /w34640 /w24826 /w14905 /w14906 /w14928 /w45038 /W4 /permissive- /volatile:iso /Zc:inline /Zc:preprocessor /Zc:enumTypes /Zc:lambda /Zc:__cplusplus /Zc:externConstexpr /Zc:throwingNew /EHsc", |
| 79 | + "CMAKE_EXE_LINKER_FLAGS": "/machine:x64 /guard:cf" |
| 80 | + } |
| 81 | + }, |
| 82 | + { |
| 83 | + "name": "ci-linux", |
| 84 | + "inherits": ["flags-gcc-clang", "ci-std"], |
| 85 | + "generator": "Unix Makefiles", |
| 86 | + "hidden": true, |
| 87 | + "cacheVariables": { |
| 88 | + "CMAKE_BUILD_TYPE": "Release" |
| 89 | + } |
| 90 | + }, |
| 91 | + { |
| 92 | + "name": "ci-darwin", |
| 93 | + "inherits": ["flags-appleclang", "ci-std"], |
| 94 | + "generator": "Xcode", |
| 95 | + "hidden": true |
| 96 | + }, |
| 97 | + { |
| 98 | + "name": "ci-win64", |
| 99 | + "inherits": ["flags-msvc", "ci-std"], |
| 100 | + "generator": "Visual Studio 17 2022", |
| 101 | + "architecture": "x64", |
| 102 | + "hidden": true |
| 103 | + }, |
| 104 | + { |
| 105 | + "name": "coverage-linux", |
| 106 | + "binaryDir": "${sourceDir}/build/coverage", |
| 107 | + "inherits": "ci-linux", |
| 108 | + "hidden": true, |
| 109 | + "cacheVariables": { |
| 110 | + "ENABLE_COVERAGE": "ON", |
| 111 | + "CMAKE_BUILD_TYPE": "Coverage", |
| 112 | + "CMAKE_CXX_FLAGS_COVERAGE": "-Og -g --coverage -fkeep-inline-functions -fkeep-static-functions", |
| 113 | + "CMAKE_EXE_LINKER_FLAGS_COVERAGE": "--coverage", |
| 114 | + "CMAKE_SHARED_LINKER_FLAGS_COVERAGE": "--coverage" |
| 115 | + } |
| 116 | + }, |
| 117 | + { |
| 118 | + "name": "ci-coverage", |
| 119 | + "inherits": ["coverage-linux", "dev-mode"], |
| 120 | + "cacheVariables": { |
| 121 | + "COVERAGE_HTML_COMMAND": "" |
| 122 | + } |
| 123 | + }, |
| 124 | + { |
| 125 | + "name": "ci-sanitize", |
| 126 | + "binaryDir": "${sourceDir}/build/sanitize", |
| 127 | + "inherits": ["ci-linux", "dev-mode"], |
| 128 | + "cacheVariables": { |
| 129 | + "CMAKE_BUILD_TYPE": "Sanitize", |
| 130 | + "CMAKE_CXX_FLAGS_SANITIZE": "-U_FORTIFY_SOURCE -O2 -g -fsanitize=address,undefined -fno-omit-frame-pointer -fno-common" |
| 131 | + } |
| 132 | + }, |
| 133 | + { |
| 134 | + "name": "ci-build", |
| 135 | + "binaryDir": "${sourceDir}/build", |
| 136 | + "hidden": true |
| 137 | + }, |
| 138 | + { |
| 139 | + "name": "ci-multi-config", |
| 140 | + "description": "Speed up multi-config generators by generating only one configuration instead of the defaults", |
| 141 | + "hidden": true, |
| 142 | + "cacheVariables": { |
| 143 | + "CMAKE_CONFIGURATION_TYPES": "Release" |
| 144 | + } |
| 145 | + }, |
| 146 | + { |
| 147 | + "name": "ci-macos", |
| 148 | + "inherits": ["ci-build", "ci-darwin", "dev-mode", "ci-multi-config"] |
| 149 | + }, |
| 150 | + { |
| 151 | + "name": "ci-ubuntu", |
| 152 | + "inherits": ["ci-build", "ci-linux", "clang-tidy", "cppcheck", "dev-mode"] |
| 153 | + }, |
| 154 | + { |
| 155 | + "name": "ci-windows", |
| 156 | + "inherits": ["ci-build", "ci-win64", "dev-mode", "ci-multi-config"] |
| 157 | + } |
| 158 | + ] |
| 159 | +} |
0 commit comments