1
+ {
2
+ "version" : 5 ,
3
+ "cmakeMinimumRequired" : {
4
+ "major" : 3 ,
5
+ "minor" : 24 ,
6
+ "patch" : 0
7
+ },
8
+ "configurePresets" : [
9
+ {
10
+ "name" : " default" ,
11
+ "displayName" : " Default Config" ,
12
+ "description" : " Base configuration using Ninja Multi-config" ,
13
+ "generator" : " Ninja Multi-Config" ,
14
+ "binaryDir" : " ${sourceDir}/out/default" ,
15
+ "cacheVariables" : {
16
+ "CMAKE_EXPORT_COMPILE_COMMANDS" : " ON"
17
+ }
18
+ },
19
+ {
20
+ "name" : " base-gcc" ,
21
+ "hidden" : true ,
22
+ "inherits" : " default" ,
23
+ "cacheVariables" : {
24
+ "CMAKE_C_COMPILER" : " gcc" ,
25
+ "CMAKE_CXX_COMPILER" : " g++"
26
+ }
27
+ },
28
+ {
29
+ "name" : " base-clang" ,
30
+ "hidden" : true ,
31
+ "inherits" : " default" ,
32
+ "cacheVariables" : {
33
+ "CMAKE_C_COMPILER" : " clang" ,
34
+ "CMAKE_CXX_COMPILER" : " clang++"
35
+ }
36
+ },
37
+ {
38
+ "name" : " base-msvc" ,
39
+ "hidden" : true ,
40
+ "inherits" : " default" ,
41
+ "cacheVariables" : {
42
+ "CMAKE_C_COMPILER" : " cl" ,
43
+ "CMAKE_CXX_COMPILER" : " cl"
44
+ }
45
+ },
46
+ {
47
+ "name" : " ninja-gcc" ,
48
+ "displayName" : " Ninja GCC" ,
49
+ "description" : " Build configuration using Ninja Multi-config / GCC" ,
50
+ "inherits" : " base-gcc" ,
51
+ "binaryDir" : " ${sourceDir}/out/gcc" ,
52
+ "cacheVariables" : {
53
+ "CMAKE_CXX_FLAGS_INIT" : " -Wall -Wextra -Wpedantic -Wconversion -Werror=return-type" ,
54
+ "CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT" : " -Werror" ,
55
+ "CMAKE_CXX_FLAGS_RELEASE_INIT" : " -Werror"
56
+ }
57
+ },
58
+ {
59
+ "name" : " ninja-clang" ,
60
+ "displayName" : " Ninja Clang" ,
61
+ "description" : " Build configuration using Ninja Multi-config / Clang" ,
62
+ "inherits" : " base-clang" ,
63
+ "binaryDir" : " ${sourceDir}/out/clang" ,
64
+ "cacheVariables" : {
65
+ "CMAKE_CXX_FLAGS_INIT" : " -Wall -Wextra -Wpedantic -Wconversion -Werror=return-type" ,
66
+ "CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT" : " -Werror" ,
67
+ "CMAKE_CXX_FLAGS_RELEASE_INIT" : " -Werror"
68
+ }
69
+ },
70
+ {
71
+ "name" : " ninja-msvc" ,
72
+ "displayName" : " Ninja MSVC" ,
73
+ "description" : " Build configuration using Ninja Multi-config / MSVC" ,
74
+ "inherits" : " base-msvc" ,
75
+ "binaryDir" : " ${sourceDir}/out/msvc" ,
76
+ "cacheVariables" : {
77
+ "CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT" : " /WX" ,
78
+ "CMAKE_CXX_FLAGS_RELEASE_INIT" : " /WX"
79
+ }
80
+ },
81
+ {
82
+ "name" : " ninja-ubsan" ,
83
+ "displayName" : " Ninja UBSan" ,
84
+ "description" : " UBSan build configuration using Ninja Multi-config" ,
85
+ "inherits" : " default" ,
86
+ "binaryDir" : " ${sourceDir}/out/ubsan" ,
87
+ "cacheVariables" : {
88
+ "CMAKE_CXX_FLAGS_INIT" : " -fsanitize=undefined -Wall -Wextra -Wpedantic -Wconversion -Werror=return-type"
89
+ }
90
+ },
91
+ {
92
+ "name" : " ninja-asan" ,
93
+ "displayName" : " Ninja ASan" ,
94
+ "description" : " ASan build configuration using Ninja Multi-config" ,
95
+ "inherits" : " default" ,
96
+ "binaryDir" : " ${sourceDir}/out/asan" ,
97
+ "cacheVariables" : {
98
+ "CMAKE_CXX_FLAGS_INIT" : " -fsanitize=address -Wall -Wextra -Wpedantic -Wconversion -Werror=return-type"
99
+ }
100
+ },
101
+ {
102
+ "name" : " ninja-msvc-asan" ,
103
+ "displayName" : " Ninja MSVC ASan" ,
104
+ "description" : " ASan build configuration using Ninja Multi-config" ,
105
+ "inherits" : " base-msvc" ,
106
+ "binaryDir" : " ${sourceDir}/out/asan" ,
107
+ "cacheVariables" : {
108
+ "CMAKE_CXX_FLAGS_INIT" : " -fsanitize=address"
109
+ }
110
+ },
111
+ {
112
+ "name" : " ninja-tsan" ,
113
+ "displayName" : " Ninja TSan" ,
114
+ "description" : " TSan build configuration using Ninja Multi-config" ,
115
+ "inherits" : " default" ,
116
+ "binaryDir" : " ${sourceDir}/out/tsan" ,
117
+ "cacheVariables" : {
118
+ "CMAKE_CXX_FLAGS_INIT" : " -fsanitize=thread -Wall -Wextra -Wpedantic -Wconversion -Werror=return-type"
119
+ }
120
+ },
121
+ {
122
+ "name" : " vs22" ,
123
+ "displayName" : " Visual Studio 2022" ,
124
+ "description" : " Build configuration using Visual Studio 17 (2022)" ,
125
+ "generator" : " Visual Studio 17 2022" ,
126
+ "binaryDir" : " ${sourceDir}/out/vs" ,
127
+ "cacheVariables" : {
128
+ "CMAKE_CXX_FLAGS_INIT" : " /WX"
129
+ },
130
+ "architecture" : {
131
+ "value" : " x64" ,
132
+ "strategy" : " external"
133
+ }
134
+ }
135
+ ],
136
+ "buildPresets" : [
137
+ {
138
+ "name" : " Debug" ,
139
+ "configurePreset" : " default" ,
140
+ "configuration" : " Debug"
141
+ },
142
+ {
143
+ "name" : " Release" ,
144
+ "configurePreset" : " default" ,
145
+ "configuration" : " Release"
146
+ },
147
+ {
148
+ "name" : " RelWithDebInfo" ,
149
+ "configurePreset" : " default" ,
150
+ "configuration" : " RelWithDebInfo"
151
+ },
152
+ {
153
+ "name" : " GCC Debug" ,
154
+ "configurePreset" : " ninja-gcc" ,
155
+ "configuration" : " Debug"
156
+ },
157
+ {
158
+ "name" : " GCC RelWithDebInfo" ,
159
+ "configurePreset" : " ninja-gcc" ,
160
+ "configuration" : " RelWithDebInfo"
161
+ },
162
+ {
163
+ "name" : " Clang Debug" ,
164
+ "configurePreset" : " ninja-clang" ,
165
+ "configuration" : " Debug"
166
+ },
167
+ {
168
+ "name" : " Clang RelWithDebInfo" ,
169
+ "configurePreset" : " ninja-clang" ,
170
+ "configuration" : " RelWithDebInfo"
171
+ },
172
+ {
173
+ "name" : " MSVC Debug" ,
174
+ "configurePreset" : " ninja-msvc" ,
175
+ "configuration" : " Debug"
176
+ },
177
+ {
178
+ "name" : " MSVC Release" ,
179
+ "configurePreset" : " ninja-msvc" ,
180
+ "configuration" : " Release"
181
+ },
182
+ {
183
+ "name" : " UBSan Debug" ,
184
+ "configurePreset" : " ninja-ubsan" ,
185
+ "configuration" : " Debug"
186
+ }
187
+ ],
188
+ "testPresets" : [
189
+ {
190
+ "name" : " Debug" ,
191
+ "configurePreset" : " default" ,
192
+ "configuration" : " Debug" ,
193
+ "inheritConfigureEnvironment" : true
194
+ },
195
+ {
196
+ "name" : " Release" ,
197
+ "configurePreset" : " default" ,
198
+ "configuration" : " Release" ,
199
+ "inheritConfigureEnvironment" : true
200
+ },
201
+ {
202
+ "name" : " RelWithDebInfo" ,
203
+ "configurePreset" : " default" ,
204
+ "configuration" : " RelWithDebInfo" ,
205
+ "inheritConfigureEnvironment" : true
206
+ },
207
+ {
208
+ "name" : " GCC Debug" ,
209
+ "configurePreset" : " ninja-gcc" ,
210
+ "configuration" : " Debug" ,
211
+ "inheritConfigureEnvironment" : true
212
+ },
213
+ {
214
+ "name" : " GCC RelWithDebInfo" ,
215
+ "configurePreset" : " ninja-gcc" ,
216
+ "configuration" : " RelWithDebInfo" ,
217
+ "inheritConfigureEnvironment" : true
218
+ },
219
+ {
220
+ "name" : " Clang Debug" ,
221
+ "configurePreset" : " ninja-clang" ,
222
+ "configuration" : " Debug" ,
223
+ "inheritConfigureEnvironment" : true
224
+ },
225
+ {
226
+ "name" : " Clang RelWithDebInfo" ,
227
+ "configurePreset" : " ninja-clang" ,
228
+ "configuration" : " RelWithDebInfo" ,
229
+ "inheritConfigureEnvironment" : true
230
+ },
231
+ {
232
+ "name" : " MSVC Debug" ,
233
+ "configurePreset" : " ninja-msvc" ,
234
+ "configuration" : " Debug" ,
235
+ "inheritConfigureEnvironment" : true
236
+ },
237
+ {
238
+ "name" : " MSVC Release" ,
239
+ "configurePreset" : " ninja-msvc" ,
240
+ "configuration" : " Release" ,
241
+ "inheritConfigureEnvironment" : true
242
+ },
243
+ {
244
+ "name" : " UBSan Debug" ,
245
+ "configurePreset" : " ninja-ubsan" ,
246
+ "configuration" : " Debug" ,
247
+ "inheritConfigureEnvironment" : true
248
+ }
249
+ ]
250
+ }
0 commit comments