Skip to content

Commit a5947d9

Browse files
Iason NikolasIason Nikolas
Iason Nikolas
authored and
Iason Nikolas
committed
Add condition based on ${hostSystemName} on build and test Presets also to prevent clutter (+1 squashed commits)
Squashed commits: [7f3630d] Keep it simple remove unecessary 'build-` and 'test-` prefixes to make life easier as @KlausKlein suggested here cpp-best-practices#31 (comment)
1 parent da3837a commit a5947d9

File tree

2 files changed

+171
-49
lines changed

2 files changed

+171
-49
lines changed

CMakePresets.json

Lines changed: 131 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
},
4040
{
4141
"name": "config-unixlike-common",
42-
"description": "Unix-like OS settings for gcc and clang toolchains",
42+
"description": "Unixlike OS settings for gcc and clang toolchains",
4343
"hidden": true,
4444
"inherits": "config-common",
4545
"condition": {
@@ -118,7 +118,7 @@
118118
{
119119
"name": "unixlike-gcc",
120120
"displayName": "gcc",
121-
"description": "Target unix-like OS with the gcc compiler",
121+
"description": "Target unixlike OS with the gcc compiler",
122122
"inherits": [
123123
"config-unixlike-common",
124124
"config-gcc-compiler"
@@ -127,7 +127,7 @@
127127
{
128128
"name": "unixlike-clang",
129129
"displayName": "clang",
130-
"description": "Target Unix-like OS with the clang compiler",
130+
"description": "Target unixlike OS with the clang compiler",
131131
"inherits": [
132132
"config-unixlike-common",
133133
"config-clang-compiler"
@@ -136,20 +136,43 @@
136136
],
137137
"buildPresets": [
138138
{
139-
"name": "build-common-debug",
139+
"name": "build-windows",
140+
"description": "Windows common build settings",
141+
"hidden": true,
142+
"condition": {
143+
"type": "equals",
144+
"lhs": "${hostSystemName}",
145+
"rhs": "Windows"
146+
}
147+
},
148+
{
149+
"name": "build-unixlike",
150+
"description": "Unixlike OS common build settings",
151+
"hidden": true,
152+
"condition": {
153+
"type": "inList",
154+
"string": "${hostSystemName}",
155+
"list": [
156+
"Linux",
157+
"Darwin"
158+
]
159+
}
160+
},
161+
{
162+
"name": "build-debug",
140163
"description": "Set build type to Debug",
141164
"hidden": true,
142165
"configuration": "Debug"
143166
},
144167
{
145-
"name": "build-common-release",
168+
"name": "build-release",
146169
"description": "Set build type to Release",
147170
"hidden": true,
148171
"configuration": "Release"
149172
},
150173
{
151174
"name": "build-common-relwithdebinfo",
152-
"description": "Set build type to Release",
175+
"description": "Set build type to RelWithDebInfo",
153176
"hidden": true,
154177
"configuration": "RelWithDebInfo"
155178
},
@@ -163,42 +186,60 @@
163186
"name": "windows-msvc-debug",
164187
"displayName": "Debug",
165188
"description": "Build msvc debug on windows",
166-
"inherits": "build-common-debug",
189+
"inherits": [
190+
"build-windows",
191+
"build-debug"
192+
],
167193
"configurePreset": "windows-msvc"
168194
},
169195
{
170-
"name": "build-windows-msvc-release",
196+
"name": "windows-msvc-release",
171197
"displayName": "Release",
172198
"description": "Build msvc release on windows",
173-
"inherits": "build-common-release",
199+
"inherits": [
200+
"build-windows",
201+
"build-release"
202+
],
174203
"configurePreset": "windows-msvc"
175204
},
176205
{
177-
"name": "build-unixlike-gcc-debug",
206+
"name": "unixlike-gcc-debug",
178207
"displayName": "Debug",
179208
"description": "Build gcc debug on unixlike OS",
180-
"inherits": "build-common-debug",
209+
"inherits": [
210+
"build-unixlike",
211+
"build-debug"
212+
],
181213
"configurePreset": "unixlike-gcc"
182214
},
183215
{
184-
"name": "build-unixlike-gcc-release",
216+
"name": "unixlike-gcc-release",
185217
"displayName": "Release",
186218
"description": "Build gcc release on unixlike OS",
187-
"inherits": "build-common-release",
219+
"inherits": [
220+
"build-unixlike",
221+
"build-release"
222+
],
188223
"configurePreset": "unixlike-gcc"
189224
},
190225
{
191-
"name": "build-unixlike-clang-debug",
226+
"name": "unixlike-clang-debug",
192227
"displayName": "Debug",
193228
"description": "Build clang debug on unixlike OS",
194-
"inherits": "build-common-debug",
229+
"inherits": [
230+
"build-unixlike",
231+
"build-debug"
232+
],
195233
"configurePreset": "unixlike-clang"
196234
},
197235
{
198-
"name": "build-unixlike-clang-release",
236+
"name": "unixlike-clang-release",
199237
"displayName": "Release",
200238
"description": "Build clang release on unixlike OS",
201-
"inherits": "build-common-release",
239+
"inherits": [
240+
"build-unixlike",
241+
"build-release"
242+
],
202243
"configurePreset": "unixlike-clang"
203244
}
204245
],
@@ -216,73 +257,126 @@
216257
}
217258
},
218259
{
219-
"name": "test-common-debug",
260+
"name": "test-windows",
261+
"description": "Windows common test settings",
262+
"hidden": true,
263+
"condition": {
264+
"type": "equals",
265+
"lhs": "${hostSystemName}",
266+
"rhs": "Windows"
267+
}
268+
},
269+
{
270+
"name": "test-unixlike",
271+
"description": "Unixlike OS common test settings",
272+
"hidden": true,
273+
"condition": {
274+
"type": "inList",
275+
"string": "${hostSystemName}",
276+
"list": [
277+
"Linux",
278+
"Darwin"
279+
]
280+
}
281+
},
282+
{
283+
"name": "test-debug",
220284
"description": "Test CMake settings that apply to debug configurations",
221285
"hidden": true,
222-
"inherits": "test-common",
223286
"configuration": "Debug"
224287
},
225288
{
226-
"name": "test-common-release",
289+
"name": "test-release",
227290
"description": "Test CMake settings that apply to release configurations",
228291
"hidden": true,
229-
"inherits": "test-common",
230292
"configuration": "Release"
231293
},
232294
{
233-
"name": "test-windows-msvc-debug",
295+
"name": "windows-msvc-debug",
234296
"displayName": "Debug",
235297
"description": "Set Strict rules for windows msvc debug tests",
236-
"inherits": "test-common-debug",
298+
"inherits": [
299+
"test-common",
300+
"test-windows",
301+
"test-debug"
302+
],
237303
"configurePreset": "windows-msvc"
238304
},
239305
{
240-
"name": "test-windows-msvc-release",
306+
"name": "windows-msvc-release",
241307
"displayName": "Release",
242308
"description": "Set Strict rules for windows msvc release tests",
243-
"inherits": "test-common-release",
309+
"inherits": [
310+
"test-common",
311+
"test-windows",
312+
"test-release"
313+
],
244314
"configurePreset": "windows-msvc"
245315
},
246316
{
247-
"name": "test-windows-clang-debug",
317+
"name": "windows-clang-debug",
248318
"displayName": "Debug",
249319
"description": "Set Strict rules for windows clang debug tests",
250-
"inherits": "test-common-debug",
320+
"inherits": [
321+
"test-common",
322+
"test-windows",
323+
"test-debug"
324+
],
251325
"configurePreset": "windows-clang"
252326
},
253327
{
254-
"name": "test-windows-clang-release",
328+
"name": "windows-clang-release",
255329
"displayName": "Release",
256330
"description": "Set Strict rules for windows clang release tests",
257-
"inherits": "test-common-release",
331+
"inherits": [
332+
"test-common",
333+
"test-windows",
334+
"test-release"
335+
],
258336
"configurePreset": "windows-clang"
259337
},
260338
{
261-
"name": "test-unixlike-gcc-debug",
339+
"name": "unixlike-gcc-debug",
262340
"displayName": "Debug",
263341
"description": "Set Strict rules for unixlike gcc debug tests",
264-
"inherits": "test-common-debug",
342+
"inherits": [
343+
"test-common",
344+
"test-unixlike",
345+
"test-debug"
346+
],
265347
"configurePreset": "unixlike-gcc"
266348
},
267349
{
268-
"name": "test-unixlike-gcc-release",
350+
"name": "unixlike-gcc-release",
269351
"displayName": "Release",
270352
"description": "Set Strict rules for unixlike gcc release tests",
271-
"inherits": "test-common-release",
353+
"inherits": [
354+
"test-common",
355+
"test-unixlike",
356+
"test-release"
357+
],
272358
"configurePreset": "unixlike-gcc"
273359
},
274360
{
275-
"name": "test-unixlike-clang-debug",
361+
"name": "unixlike-clang-debug",
276362
"displayName": "Debug",
277363
"description": "Set Strict rules for unixlike clang debug tests",
278-
"inherits": "test-common-debug",
364+
"inherits": [
365+
"test-common",
366+
"test-unixlike",
367+
"test-debug"
368+
],
279369
"configurePreset": "unixlike-clang"
280370
},
281371
{
282-
"name": "test-unixlike-clang-release",
372+
"name": "unixlike-clang-release",
283373
"displayName": "Release",
284374
"description": "Set Strict rules for unixlike clang release tests",
285-
"inherits": "test-common-release",
375+
"inherits": [
376+
"test-common",
377+
"test-unixlike",
378+
"test-release"
379+
],
286380
"configurePreset": "unixlike-clang"
287381
}
288382
]

CMakeUserPresets.json

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,43 @@
4545
],
4646
"buildPresets": [
4747
{
48-
"name": "build-windows-msvc-developer-debug",
48+
"name": "windows-msvc-developer-debug",
4949
"displayName": "Debug",
5050
"description": "Build msvc debug on windows (Developer Mode)",
51-
"inherits": "build-common-debug",
51+
"inherits": [
52+
"build-windows",
53+
"build-debug"
54+
],
5255
"configurePreset": "windows-msvc-developer"
5356
},
5457
{
55-
"name": "build-windows-msvc-developer-release",
58+
"name": "windows-msvc-developer-release",
5659
"displayName": "Release",
5760
"description": "Build msvc release on windows (Developer Mode)",
58-
"inherits": "build-common-release",
61+
"inherits": [
62+
"build-windows",
63+
"build-release"
64+
],
5965
"configurePreset": "windows-msvc-developer"
6066
},
6167
{
62-
"name": "build-windows-msvc-user-debug",
68+
"name": "windows-msvc-user-debug",
6369
"displayName": "Debug",
6470
"description": "Build msvc debug on windows (User Mode)",
65-
"inherits": "build-common-debug",
71+
"inherits": [
72+
"build-windows",
73+
"build-debug"
74+
],
6675
"configurePreset": "windows-msvc-user"
6776
},
6877
{
69-
"name": "build-windows-msvc-user-release",
78+
"name": "windows-msvc-user-release",
7079
"displayName": "Release",
7180
"description": "Build msvc release on windows (User Mode)",
72-
"inherits": "build-common-release",
81+
"inherits": [
82+
"build-windows",
83+
"build-release"
84+
],
7385
"configurePreset": "windows-msvc-user"
7486
}
7587
],
@@ -78,28 +90,44 @@
7890
"name": "test-windows-msvc-developer-debug",
7991
"displayName": "Debug",
8092
"description": "Set Strict rules for windows msvc (Developer Mode) debug tests",
81-
"inherits": "test-common-debug",
93+
"inherits": [
94+
"test-common",
95+
"test-windows",
96+
"test-debug"
97+
],
8298
"configurePreset": "windows-msvc-developer"
8399
},
84100
{
85101
"name": "test-windows-msvc-developer-release",
86102
"displayName": "Release",
87103
"description": "Set Strict rules for windows msvc (Developer Mode) release tests",
88-
"inherits": "test-common-release",
104+
"inherits": [
105+
"test-common",
106+
"test-windows",
107+
"test-release"
108+
],
89109
"configurePreset": "windows-msvc-developer"
90110
},
91111
{
92112
"name": "test-windows-msvc-user-debug",
93113
"displayName": "Debug",
94114
"description": "Set Strict rules for windows msvc (User Mode) debug tests",
95-
"inherits": "test-common-debug",
115+
"inherits": [
116+
"test-common",
117+
"test-windows",
118+
"test-debug"
119+
],
96120
"configurePreset": "windows-msvc-user"
97121
},
98122
{
99123
"name": "test-windows-msvc-user-release",
100124
"displayName": "Release",
101125
"description": "Set Strict rules for windows msvc (User Mode) release tests",
102-
"inherits": "test-common-release",
126+
"inherits": [
127+
"test-common",
128+
"test-windows",
129+
"test-release"
130+
],
103131
"configurePreset": "windows-msvc-user"
104132
}
105133
]

0 commit comments

Comments
 (0)