Skip to content

Commit 7a9f388

Browse files
authored
Merge pull request #135 from KStocky/UpgradingEverything
Massive Upgrade to Everything
2 parents 1a572d6 + 9eee0a8 commit 7a9f388

File tree

89 files changed

+1011
-800
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1011
-800
lines changed

.github/workflows/RWBuildAndRunTests.yml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,21 @@ jobs:
1313
pull-requests: write
1414

1515
runs-on: windows-latest
16+
17+
strategy:
18+
matrix:
19+
configuration:
20+
- config: Debug
21+
workflow: NinjaBuildAndTest
22+
- config: Release
23+
workflow: NinjaBuildAndTestRelease
24+
- config: DynDeopt
25+
workflow: NinjaBuildAndTestDynamicDeopt
26+
- config: Debug
27+
workflow: ClangBuildAndTest
28+
- config: Release
29+
workflow: ClangBuildAndTestRelease
30+
1631
steps:
1732
- name: Checkout the repo
1833
uses: actions/checkout@v4
@@ -23,24 +38,19 @@ jobs:
2338
- name: setup devcmd
2439
uses: ilammy/msvc-dev-cmd@v1.13.0
2540

26-
- name: Print CMake version
27-
shell: cmake -P {0}
28-
run: |
29-
message(STATUS "Host CMake version: ${CMAKE_VERSION}")
30-
3141
- name: Build everything and run all Tests"
32-
run: cmake --workflow --preset NinjaBuildAndTest
42+
run: cmake --workflow --preset ${{ matrix.configuration.workflow }}
3343

3444
- name: Publish Test Results
3545
uses: EnricoMi/publish-unit-test-result-action/windows@v2
3646
if: always()
3747
with:
3848
files: |
39-
build\test\Debug\Reports\*.xml
49+
build\test\${{ matrix.configuration.config }}\Reports\*.xml
4050
4151
- name: Publish Test Report
4252
uses: mikepenz/action-junit-report@v4.3.1
4353
if: always()
4454
with:
45-
report_paths: build\test\Debug\Reports\*.xml
55+
report_paths: build\test\${{ matrix.configuration.config }}\Reports\*.xml
4656
detailed_summary: true

.github/workflows/RWNonUnityBuild.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ jobs:
99
name: Build
1010

1111
runs-on: windows-latest
12+
13+
strategy:
14+
matrix:
15+
workflow: [NinjaNonUnityBuild, ClangNonUnityBuild]
16+
1217
steps:
1318
- name: Checkout the repo
1419
uses: actions/checkout@v4
@@ -20,4 +25,4 @@ jobs:
2025
uses: ilammy/msvc-dev-cmd@v1.13.0
2126

2227
- name: Build non-unity"
23-
run: cmake --workflow --preset NinjaNonUnityBuild
28+
run: cmake --workflow --preset ${{ matrix.workflow }}

CMakeLists.txt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
cmake_minimum_required(VERSION 3.26)
22

3+
message(STATUS "CMAKE version: ${CMAKE_VERSION}")
4+
35
project(
46
ShaderTestingFramework
57
VERSION 0.1.0
@@ -28,13 +30,26 @@ option(STF_INCLUDE_EXAMPLES "Include and build examples")
2830
option(STF_DISABLE_UNITY_STF "Disable Unity build for STF Targets")
2931
option(STF_STRICT_COMPILATION "Turn Warning Level Up and Warnings as Errors")
3032

33+
include(Configuration)
34+
35+
addDynamicDebuggingConfig()
36+
3137
if (${STF_STRICT_COMPILATION})
3238
set(CMAKE_CXX_EXTENSIONS OFF)
3339
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
3440

35-
set(GLOBAL_COMPILE_FLAGS
36-
$<$<CXX_COMPILER_ID:MSVC>:/W4 /MP>
37-
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wall -Wextra -Wpedantic> )
41+
set(GLOBAL_COMPILE_FLAGS /W4)
42+
43+
list(APPEND GLOBAL_COMPILE_FLAGS
44+
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:
45+
# We need to disable this because of a known issue in Clang https://github.com/llvm/llvm-project/issues/51619
46+
# This warning basically makes it impossible to use tuplet as it is implemented as an aggregate.
47+
-Wno-missing-braces
48+
49+
## We need to disable this because of an issue in PixEvents.
50+
## We can remove this when https://github.com/microsoft/PixEvents/pull/11 is resolved
51+
-Wno-unused-but-set-variable
52+
>)
3853

3954
endif()
4055

CMakePresets.json

Lines changed: 211 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
},
2424
"toolset": {
2525
"strategy": "external",
26-
"value": "version=14.42"
26+
"value": "version=14.44"
2727
}
2828
},
2929
{
@@ -41,6 +41,26 @@
4141
"STF_DISABLE_UNITY_STF": true
4242
}
4343
},
44+
{
45+
"name": "Clang",
46+
"inherits": "NinjaBase",
47+
"cacheVariables": {
48+
"STF_DISABLE_UNITY_STF": false,
49+
"CMAKE_CXX_COMPILER": "clang-cl"
50+
},
51+
"vendor": {
52+
"microsoft.com/VisualStudioSettings/CMake/1.0": {
53+
"intelliSenseMode": "windows-clangcl-x64"
54+
}
55+
}
56+
},
57+
{
58+
"name": "ClangNonUnity",
59+
"inherits": "Clang",
60+
"cacheVariables": {
61+
"STF_DISABLE_UNITY_STF": true
62+
}
63+
},
4464
{
4565
"name": "VS2022",
4666
"binaryDir": "build",
@@ -60,11 +80,36 @@
6080
"configurePreset": "Ninja",
6181
"configuration": "Debug"
6282
},
83+
{
84+
"name": "NinjaRelease",
85+
"configurePreset": "Ninja",
86+
"configuration": "Release"
87+
},
6388
{
6489
"name": "NinjaNonUnity",
6590
"configurePreset": "NinjaNonUnity",
6691
"configuration": "Debug"
6792
},
93+
{
94+
"name": "NinjaDynamicDeopt",
95+
"configurePreset": "Ninja",
96+
"configuration": "DynDeopt"
97+
},
98+
{
99+
"name": "Clang",
100+
"configurePreset": "Clang",
101+
"configuration": "Debug"
102+
},
103+
{
104+
"name": "ClangRelease",
105+
"configurePreset": "Clang",
106+
"configuration": "Release"
107+
},
108+
{
109+
"name": "ClangNonUnity",
110+
"configurePreset": "ClangNonUnity",
111+
"configuration": "Debug"
112+
},
68113
{
69114
"name": "VS2022",
70115
"configurePreset": "VS2022",
@@ -80,6 +125,38 @@
80125
"outputOnFailure": true
81126
}
82127
},
128+
{
129+
"name": "NinjaRelease",
130+
"configurePreset": "Ninja",
131+
"configuration": "Release",
132+
"output": {
133+
"outputOnFailure": true
134+
}
135+
},
136+
{
137+
"name": "NinjaDynamicDeopt",
138+
"configurePreset": "Ninja",
139+
"configuration": "DynDeopt",
140+
"output": {
141+
"outputOnFailure": true
142+
}
143+
},
144+
{
145+
"name": "Clang",
146+
"configurePreset": "Clang",
147+
"configuration": "Debug",
148+
"output": {
149+
"outputOnFailure": true
150+
}
151+
},
152+
{
153+
"name": "ClangRelease",
154+
"configurePreset": "Clang",
155+
"configuration": "Release",
156+
"output": {
157+
"outputOnFailure": true
158+
}
159+
},
83160
{
84161
"name": "VS2022",
85162
"configurePreset": "VS2022",
@@ -103,6 +180,71 @@
103180
}
104181
]
105182
},
183+
{
184+
"name": "NinjaBuildRelease",
185+
"steps": [
186+
{
187+
"name": "Ninja",
188+
"type": "configure"
189+
},
190+
{
191+
"name": "NinjaRelease",
192+
"type": "build"
193+
}
194+
]
195+
},
196+
{
197+
"name": "ClangBuild",
198+
"steps": [
199+
{
200+
"name": "Clang",
201+
"type": "configure"
202+
},
203+
{
204+
"name": "Clang",
205+
"type": "build"
206+
}
207+
]
208+
},
209+
{
210+
"name": "ClangBuildRelease",
211+
"steps": [
212+
{
213+
"name": "Clang",
214+
"type": "configure"
215+
},
216+
{
217+
"name": "ClangRelease",
218+
"type": "build"
219+
}
220+
]
221+
},
222+
{
223+
"name": "ClangNonUnityBuild",
224+
"steps": [
225+
{
226+
"name": "ClangNonUnity",
227+
"type": "configure"
228+
},
229+
{
230+
"name": "ClangNonUnity",
231+
"type": "build"
232+
}
233+
]
234+
},
235+
{
236+
"name": "NinjaBuildDynamicDeopt",
237+
"steps": [
238+
{
239+
"name": "Ninja",
240+
"type": "configure"
241+
},
242+
{
243+
"name": "NinjaDynamicDeopt",
244+
"type": "build"
245+
}
246+
]
247+
},
106248
{
107249
"name": "NinjaNonUnityBuild",
108250
"steps": [
@@ -146,6 +288,74 @@
146288
}
147289
]
148290
},
291+
{
292+
"name": "NinjaBuildAndTestRelease",
293+
"steps": [
294+
{
295+
"name": "Ninja",
296+
"type": "configure"
297+
},
298+
{
299+
"name": "NinjaRelease",
300+
"type": "build"
301+
},
302+
{
303+
"name": "NinjaRelease",
304+
"type": "test"
305+
}
306+
]
307+
},
308+
{
309+
"name": "NinjaBuildAndTestDynamicDeopt",
310+
"steps": [
311+
{
312+
"name": "Ninja",
313+
"type": "configure"
314+
},
315+
{
316+
"name": "NinjaDynamicDeopt",
317+
"type": "build"
318+
},
319+
{
320+
"name": "NinjaDynamicDeopt",
321+
"type": "test"
322+
}
323+
]
324+
},
325+
{
326+
"name": "ClangBuildAndTest",
327+
"steps": [
328+
{
329+
"name": "Clang",
330+
"type": "configure"
331+
},
332+
{
333+
"name": "Clang",
334+
"type": "build"
335+
},
336+
{
337+
"name": "Clang",
338+
"type": "test"
339+
}
340+
]
341+
},
342+
{
343+
"name": "ClangBuildAndTestRelease",
344+
"steps": [
345+
{
346+
"name": "Clang",
347+
"type": "configure"
348+
},
349+
{
350+
"name": "ClangRelease",
351+
"type": "build"
352+
},
353+
{
354+
"name": "ClangRelease",
355+
"type": "test"
356+
}
357+
]
358+
},
149359
{
150360
"name": "VS2022BuildAndTest",
151361
"steps": [

0 commit comments

Comments
 (0)