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