Skip to content

Commit ae6d869

Browse files
committed
update CMakePresets.json with per configuration presets (TODO: write an issue on Kitware SCM regarding buggy penv/env inheritance in build presets, it forced me to create separate configs), add registry long paths enabled feature to base image definition, add CMake services extended to cover configurations, output build directory per library format type and configuration therefore make sure no containers from different setup writes to another build directory (well, some targets compiled with configuration X reuse configuration Y), update modules
1 parent ce0ee02 commit ae6d869

File tree

7 files changed

+321
-27
lines changed

7 files changed

+321
-27
lines changed

CMakePresets.json

Lines changed: 196 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
"hidden": true,
3030
"description": "CI preset for static-configure inheritance",
3131
"inherits": "ci-configure-dev",
32-
"binaryDir": "${sourceDir}/build/static"
32+
"binaryDir": "build/static"
3333
},
3434
{
3535
"name": "ci-configure-dynamic-dev",
3636
"hidden": true,
3737
"description": "CI preset for dynamic-configure inheritance",
3838
"inherits": "ci-configure-dev",
39-
"binaryDir": "${sourceDir}/build/dynamic",
39+
"binaryDir": "build/dynamic",
4040
"cacheVariables": {
4141
"NBL_STATIC_BUILD": "OFF",
4242
"NBL_DYNAMIC_MSVC_RUNTIME": "ON"
@@ -69,6 +69,48 @@
6969
"rhs": "Windows"
7070
}
7171
},
72+
{
73+
"name": "ci-configure-static-msvc-release",
74+
"inherits": "ci-configure-static-dev",
75+
"displayName": "CI configure-static Visual Studio MSVC windows-host-only Release configuration",
76+
"description": "CI static configure using Visual Studio generator, Release configuration and MSVC toolset, windows as host only",
77+
"generator": "Visual Studio 17 2022",
78+
"toolset": "v143",
79+
"binaryDir": "build/.docker/windows/x86_64/static/release",
80+
"condition": {
81+
"type": "equals",
82+
"lhs": "${hostSystemName}",
83+
"rhs": "Windows"
84+
}
85+
},
86+
{
87+
"name": "ci-configure-static-msvc-relwithdebinfo",
88+
"inherits": "ci-configure-static-dev",
89+
"displayName": "CI configure-static Visual Studio MSVC windows-host-only RelWithDebInfo configuration",
90+
"description": "CI static configure using Visual Studio generator and MSVC toolset, windows as host only",
91+
"generator": "Visual Studio 17 2022",
92+
"toolset": "v143",
93+
"binaryDir": "build/.docker/windows/x86_64/static/relwithdebinfo",
94+
"condition": {
95+
"type": "equals",
96+
"lhs": "${hostSystemName}",
97+
"rhs": "Windows"
98+
}
99+
},
100+
{
101+
"name": "ci-configure-static-msvc-debug",
102+
"inherits": "ci-configure-static-dev",
103+
"displayName": "CI configure-static Visual Studio MSVC windows-host-only Debug configuration",
104+
"description": "CI static configure using Visual Studio generator and MSVC toolset, windows as host only",
105+
"generator": "Visual Studio 17 2022",
106+
"toolset": "v143",
107+
"binaryDir": "build/.docker/windows/x86_64/static/debug",
108+
"condition": {
109+
"type": "equals",
110+
"lhs": "${hostSystemName}",
111+
"rhs": "Windows"
112+
}
113+
},
72114
{
73115
"name": "ci-configure-dynamic-msvc",
74116
"inherits": "ci-configure-dynamic-dev",
@@ -81,6 +123,48 @@
81123
"lhs": "${hostSystemName}",
82124
"rhs": "Windows"
83125
}
126+
},
127+
{
128+
"name": "ci-configure-dynamic-msvc-release",
129+
"inherits": "ci-configure-dynamic-dev",
130+
"displayName": "CI configure-dynamic Visual Studio MSVC windows-host-only Release configuration",
131+
"description": "CI dynamic configure using Visual Studio generator, Release configuration and MSVC toolset, windows as host only",
132+
"toolset": "v143",
133+
"binaryDir": "build/.docker/windows/x86_64/dynamic/release",
134+
"generator": "Visual Studio 17 2022",
135+
"condition": {
136+
"type": "equals",
137+
"lhs": "${hostSystemName}",
138+
"rhs": "Windows"
139+
}
140+
},
141+
{
142+
"name": "ci-configure-dynamic-msvc-relwithdebinfo",
143+
"inherits": "ci-configure-dynamic-dev",
144+
"displayName": "CI configure-dynamic Visual Studio MSVC windows-host-only RelWithDebInfo configuration",
145+
"description": "CI dynamic configure using Visual Studio generator, RelWithDebInfo configuration and MSVC toolset, windows as host only",
146+
"toolset": "v143",
147+
"binaryDir": "build/.docker/windows/x86_64/dynamic/relwithdebinfo",
148+
"generator": "Visual Studio 17 2022",
149+
"condition": {
150+
"type": "equals",
151+
"lhs": "${hostSystemName}",
152+
"rhs": "Windows"
153+
}
154+
},
155+
{
156+
"name": "ci-configure-dynamic-msvc-debug",
157+
"inherits": "ci-configure-dynamic-dev",
158+
"displayName": "CI configure-dynamic Visual Studio MSVC windows-host-only Debug configuration",
159+
"description": "CI dynamic configure using Visual Studio generator,Debug configuration and MSVC toolset, windows as host only",
160+
"toolset": "v143",
161+
"binaryDir": "build/.docker/windows/x86_64/dynamic/debug",
162+
"generator": "Visual Studio 17 2022",
163+
"condition": {
164+
"type": "equals",
165+
"lhs": "${hostSystemName}",
166+
"rhs": "Windows"
167+
}
84168
}
85169
],
86170
"buildPresets": [
@@ -91,7 +175,8 @@
91175
"description": "main CI build preset for inheritance",
92176
"targets": [
93177
"Nabla"
94-
]
178+
],
179+
"inheritConfigureEnvironment": true
95180
},
96181
{
97182
"name": "ci-build-static-dev",
@@ -128,12 +213,60 @@
128213
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, windows as host only",
129214
"inherits": "ci-build-static-dev"
130215
},
216+
{
217+
"name": "ci-build-static-msvc-release",
218+
"configurePreset": "ci-configure-static-msvc-release",
219+
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only Release configuration",
220+
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, Release configuration windows as host only",
221+
"inherits": "ci-build-static-dev",
222+
"configuration": "Release"
223+
},
224+
{
225+
"name": "ci-build-static-msvc-relwithdebinfo",
226+
"configurePreset": "ci-configure-static-msvc-relwithdebinfo",
227+
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only RelWithDebInfo configuration",
228+
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, RelWithDebInfo configuration windows as host only",
229+
"inherits": "ci-build-static-dev",
230+
"configuration": "RelWithDebInfo"
231+
},
232+
{
233+
"name": "ci-build-static-msvc-debug",
234+
"configurePreset": "ci-configure-static-msvc-debug",
235+
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only Debug configuration",
236+
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, Debug configuration windows as host only",
237+
"inherits": "ci-build-static-dev",
238+
"configuration": "Debug"
239+
},
131240
{
132241
"name": "ci-build-dynamic-msvc",
133242
"configurePreset": "ci-configure-dynamic-msvc",
134243
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only",
135244
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, windows as host only",
136245
"inherits": "ci-build-dynamic-dev"
246+
},
247+
{
248+
"name": "ci-build-dynamic-msvc-release",
249+
"configurePreset": "ci-configure-dynamic-msvc-release",
250+
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only Release configuration",
251+
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, Release configuration windows as host only",
252+
"inherits": "ci-build-dynamic-dev",
253+
"configuration": "Release"
254+
},
255+
{
256+
"name": "ci-build-dynamic-msvc-relwithdebinfo",
257+
"configurePreset": "ci-configure-dynamic-msvc-relwithdebinfo",
258+
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only RelWithDebInfo configuration",
259+
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, RelWithDebInfo configuration windows as host only",
260+
"inherits": "ci-build-dynamic-dev",
261+
"configuration": "RelWithDebInfo"
262+
},
263+
{
264+
"name": "ci-build-dynamic-msvc-debug",
265+
"configurePreset": "ci-configure-dynamic-msvc-debug",
266+
"displayName": "CI build-dynamic Visual Studio MSVC windows-host-only Debug configuration",
267+
"description": "CI dynamic build using Visual Studio generator and MSVC toolset, Debug configuration windows as host only",
268+
"inherits": "ci-build-dynamic-dev",
269+
"configuration": "Debug"
137270
}
138271
],
139272
"packagePresets": [
@@ -172,12 +305,72 @@
172305
"displayName": "CI package-static Visual Studio MSVC windows-host-only",
173306
"description": "CI static package using Visual Studio generator and MSVC toolset, windows as host only"
174307
},
308+
{
309+
"name": "ci-package-static-msvc-release",
310+
"inherits": "ci-package-static-dev",
311+
"configurePreset": "ci-configure-static-msvc-release",
312+
"displayName": "CI package-static Visual Studio MSVC windows-host-only Release configuration",
313+
"description": "CI static package using Visual Studio generator and MSVC toolset, Release configuration windows as host only",
314+
"configurations": [
315+
"Release"
316+
]
317+
},
318+
{
319+
"name": "ci-package-static-msvc-relwithdebinfo",
320+
"inherits": "ci-package-static-dev",
321+
"configurePreset": "ci-configure-static-msvc-relwithdebinfo",
322+
"displayName": "CI package-static Visual Studio MSVC windows-host-only RelWithDebInfo configuration",
323+
"description": "CI static package using Visual Studio generator and MSVC toolset, RelWithDebInfo configuration windows as host only",
324+
"configurations": [
325+
"RelWithDebInfo"
326+
]
327+
},
328+
{
329+
"name": "ci-package-static-msvc-debug",
330+
"inherits": "ci-package-static-dev",
331+
"configurePreset": "ci-configure-static-msvc-debug",
332+
"displayName": "CI package-static Visual Studio MSVC windows-host-only Debug configuration",
333+
"description": "CI static package using Visual Studio generator and MSVC toolset, Debug configuration windows as host only",
334+
"configurations": [
335+
"Debug"
336+
]
337+
},
175338
{
176339
"name": "ci-package-dynamic-msvc",
177340
"inherits": "ci-package-dynamic-dev",
178341
"configurePreset": "ci-configure-dynamic-msvc",
179342
"displayName": "CI package-dynamic Visual Studio MSVC windows-host-only",
180343
"description": "CI dynamic package using Visual Studio generator and MSVC toolset, windows as host only"
344+
},
345+
{
346+
"name": "ci-package-dynamic-msvc-release",
347+
"inherits": "ci-package-dynamic-dev",
348+
"configurePreset": "ci-configure-dynamic-msvc-release",
349+
"displayName": "CI package-dynamic Visual Studio MSVC windows-host-only Release configuration",
350+
"description": "CI dynamic package using Visual Studio generator and MSVC toolset, Release configuration windows as host only",
351+
"configurations": [
352+
"Release"
353+
]
354+
},
355+
{
356+
"name": "ci-package-dynamic-msvc-relwithdebinfo",
357+
"inherits": "ci-package-dynamic-dev",
358+
"configurePreset": "ci-configure-dynamic-msvc-relwithdebinfo",
359+
"displayName": "CI package-dynamic Visual Studio MSVC windows-host-only RelWithDebInfo configuration",
360+
"description": "CI dynamic package using Visual Studio generator and MSVC toolset, RelWithDebInfo configuration windows as host only",
361+
"configurations": [
362+
"RelWithDebInfo"
363+
]
364+
},
365+
{
366+
"name": "ci-package-dynamic-msvc-debug",
367+
"inherits": "ci-package-dynamic-dev",
368+
"configurePreset": "ci-configure-dynamic-msvc-debug",
369+
"displayName": "CI package-dynamic Visual Studio MSVC windows-host-only Debug configuration",
370+
"description": "CI dynamic package using Visual Studio generator and MSVC toolset, Debug configuration windows as host only",
371+
"configurations": [
372+
"Debug"
373+
]
181374
}
182375
]
183376
}

docker/compose/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,5 +150,8 @@ ARG VS_DEV_CMD_DIRECTORY
150150

151151
RUN `
152152
setx PATH "%PATH%;%VS_DEV_CMD_DIRECTORY%" /M
153+
154+
RUN `
155+
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v "LongPathsEnabled" /t REG_DWORD /d 1 /f
153156

154157
ENTRYPOINT ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]

docker/compose/ci/stages/dev/build/compose.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ services:
1010
networks:
1111
nabla.network:
1212
depends_on:
13-
nabla.cmake.static:
13+
nabla.cmake.static.release:
1414
condition: service_completed_successfully
1515
nabla.kazoo.server:
1616
condition: service_healthy
@@ -31,7 +31,7 @@ services:
3131
networks:
3232
nabla.network:
3333
depends_on:
34-
nabla.cmake.static:
34+
nabla.cmake.static.relwithdebinfo:
3535
condition: service_completed_successfully
3636
nabla.kazoo.server:
3737
condition: service_healthy
@@ -52,7 +52,7 @@ services:
5252
networks:
5353
nabla.network:
5454
depends_on:
55-
nabla.cmake.static:
55+
nabla.cmake.static.debug:
5656
condition: service_completed_successfully
5757
nabla.kazoo.server:
5858
condition: service_healthy
@@ -73,7 +73,7 @@ services:
7373
networks:
7474
nabla.network:
7575
depends_on:
76-
nabla.cmake.dynamic:
76+
nabla.cmake.dynamic.release:
7777
condition: service_completed_successfully
7878
nabla.kazoo.server:
7979
condition: service_healthy
@@ -94,7 +94,7 @@ services:
9494
networks:
9595
nabla.network:
9696
depends_on:
97-
nabla.cmake.dynamic:
97+
nabla.cmake.dynamic.relwithdebinfo:
9898
condition: service_completed_successfully
9999
nabla.kazoo.server:
100100
condition: service_healthy
@@ -115,7 +115,7 @@ services:
115115
networks:
116116
nabla.network:
117117
depends_on:
118-
nabla.cmake.dynamic:
118+
nabla.cmake.dynamic.debug:
119119
condition: service_completed_successfully
120120
nabla.kazoo.server:
121121
condition: service_healthy

0 commit comments

Comments
 (0)