Skip to content

Commit f45414e

Browse files
committed
CMake fetchcontent and CMake Install Workflow
- CI Error when no files found - make libraries static - install tests and vulkan lib - Introduce CPack - Fix Clang-format issue moving to LLVM 21, which is now default on several platforms - simplify testing due to install workflow - Initialize SwapchainImages with the size parameter added as the creation of the swap chains was happening successfully but the size was not getting updated giving an index error. - Fix error on linux where Wayland was not being initialized properly. Wayland is the default for glfw in version 3.4 and in many desktop environments. GLFW_EXPOSE_NATIVE_* macro was defined for windows but not for the other Operating Systems
1 parent f7a203d commit f45414e

Some content is hidden

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

68 files changed

+506
-426
lines changed

.github/workflows/job-cmakebuild-linux.yml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,10 @@ jobs:
3131
chmod +x llvm.sh
3232
sudo ./llvm.sh 20
3333
34-
- name: Update the list of packages
34+
- name: Update the list of packages after we added packages.microsoft.com
3535
run: sudo apt-get update
36-
37-
- name: Install Dependencies
38-
run: sudo apt-get install libasound2-dev libgl1-mesa-dev libpulse-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev cmake apt-transport-https software-properties-common gcc g++ powershell clang-format-20 glslang-tools libwayland-dev libxkbcommon-dev
36+
- name: Install development library
37+
run: sudo apt-get install libasound2-dev libgl1-mesa-dev libpulse-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev cmake apt-transport-https software-properties-common gcc g++ powershell clang-format-20 libwayland-dev libxkbcommon-dev dotnet-sdk-8.0
3938

4039
- name: CMake Build
4140
run: .\Scripts\BuildEngine.ps1 -Configurations ${{inputs.configuration}}
@@ -45,11 +44,8 @@ jobs:
4544
uses: actions/upload-artifact@v4
4645
with:
4746
name: Build-linux-${{inputs.configuration}}
47+
if-no-files-found: error
4848
path: |
49-
Result.Linux.x64.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/publish/
50-
Result.Linux.x64.${{inputs.configuration}}/__externals/Vulkan-Loader/loader/
51-
Result.Linux.x64.${{inputs.configuration}}/ZEngine/tests/ZEngineTests
52-
Result.Linux.x64.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.CSharp.resources.dll
53-
!Result.Linux.x64.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
54-
!Result.Linux.x64.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.resources.dll
55-
!Result.Linux.x64.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.Scripting.resources.dll
49+
Result.Linux.x64.${{inputs.configuration}}/bin
50+
Result.Linux.x64.${{inputs.configuration}}/lib/*vulkan*
51+
Result.Linux.x64.${{inputs.configuration}}/tests

.github/workflows/job-cmakebuild-macOS.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,8 @@ jobs:
3434
uses: actions/upload-artifact@v4
3535
with:
3636
name: Build-macOS-${{ inputs.architecture }}-${{inputs.configuration}}
37+
if-no-files-found: error
3738
path: |
38-
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/osx-${{ inputs.architecture }}/publish/
39-
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/__externals/Vulkan-Loader/loader/${{ inputs.configuration }}/
40-
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/ZEngine/tests/${{inputs.configuration}}/
41-
!Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.CSharp.resources.dll
42-
!Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
43-
!Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.resources.dll
44-
!Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.Scripting.resources.dll
39+
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/bin/
40+
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/lib/*vulkan*
41+
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/tests

.github/workflows/job-cmakebuild-windows.yml

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
#
33
name: Windows Build Workflow
44

5+
permissions:
6+
packages: write
7+
58
on:
69
workflow_call:
710
inputs:
@@ -28,20 +31,8 @@ jobs:
2831
uses: actions/upload-artifact@v4
2932
with:
3033
name: Build-Windows-x64-${{inputs.configuration}}
34+
if-no-files-found: error
3135
path: |
32-
Result.Windows.x64.MultiConfig/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/win-x64/publish/
33-
Result.Windows.x64.MultiConfig/ZEngine/tests/${{inputs.configuration}}/
34-
!Result.Windows.x64.MultiConfig/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.CSharp.resources.dll
35-
!Result.Windows.x64.MultiConfig/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
36-
!Result.Windows.x64.MultiConfig/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.resources.dll
37-
!Result.Windows.x64.MultiConfig/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/Microsoft.CodeAnalysis.Scripting.resources.dll
38-
!Result.Windows.x64.MultiConfig/Panzerfaust/${{inputs.configuration}}/${{inputs.targetFramework}}/**/createdump.exe
39-
40-
- name: Publish Vulkan Build Artifacts
41-
uses: actions/upload-artifact@v4
42-
with:
43-
name: Vulkan-build-x64-${{inputs.configuration}}
44-
path: |
45-
Result.Windows.x64.MultiConfig/__externals/Vulkan-Loader/loader/${{inputs.configuration}}/vulkan-1.dll
46-
Result.Windows.x64.MultiConfig/__externals/Vulkan-Loader/loader/${{inputs.configuration}}/vulkan-1.exp
47-
Result.Windows.x64.MultiConfig/__externals/Vulkan-Loader/loader/${{inputs.configuration}}/vulkan-1.lib
36+
Result.Windows.x64.MultiConfig/bin/
37+
Result.Windows.x64.MultiConfig/lib/*vulkan*
38+
Result.Windows.x64.MultiConfig/tests/ZEngineTests.exe

.github/workflows/job-deploy-linux.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,14 @@ jobs:
1919
steps:
2020
- uses: actions/download-artifact@v4
2121
with:
22-
path: Result.Linux.x64.${{ inputs.configuration }}
2322
name: Build-linux-Release
23+
path: Result.Linux.x64.${{ inputs.configuration }}
2424

2525
- name: Publish Artifacts
2626
uses: actions/upload-artifact@v4
2727
with:
2828
name: linux-${{ inputs.configuration }}
29-
path: Result.Linux.x64.${{inputs.configuration}}/Panzerfaust/${{ inputs.configuration }}/${{inputs.targetFramework}}/publish/
29+
if-no-files-found: error
30+
path: |
31+
Result.Linux.x64.${{inputs.configuration}}/bin
32+
Result.Linux.x64.${{inputs.configuration}}/lib

.github/workflows/job-deploy-macOS.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,7 @@ jobs:
2929
uses: actions/upload-artifact@v4
3030
with:
3131
name: macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
32-
path: Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}/Panzerfaust/${{ inputs.configuration }}/${{inputs.targetFramework}}/osx-${{ inputs.architecture }}/publish/
32+
if-no-files-found: error
33+
path: |
34+
Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}/bin/
35+
Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}/lib/

.github/workflows/job-deploy-windows.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@ jobs:
2626
uses: actions/upload-artifact@v4
2727
with:
2828
name: Windows-x64-${{ inputs.configuration }}
29-
path: Result.Windows.x64.MultiConfig/Panzerfaust/${{ inputs.configuration }}/${{inputs.targetFramework}}/win-x64/publish/
29+
if-no-files-found: error
30+
path: |
31+
Result.Windows.x64.MultiConfig/bin

.github/workflows/job-test-linux.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@ on:
88
configuration:
99
type: string
1010
default: 'Debug'
11+
architecture:
12+
type: string
13+
default: 'x64'
1114

1215
jobs:
1316
test:
1417
name: test-linux-${{ inputs.configuration }}
1518
runs-on: ubuntu-24.04
1619
steps:
17-
- name: Checkout repository
18-
uses: actions/checkout@v4
19-
2020
- name: Download Artifacts
2121
uses: actions/download-artifact@v4
2222
with:
2323
name: Build-linux-${{ inputs.configuration }}
24-
path: Result.Linux.x64.${{ inputs.configuration }}
2524

2625
- name: Update access permission of ZEngineTests
27-
run: chmod +x ./Result.Linux.x64.${{ inputs.configuration }}/ZEngine/tests/ZEngineTests
26+
run: chmod +x ${{github.workspace}}/tests/ZEngineTests
2827

2928
- name: Run Tests
30-
run: .\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }}
31-
shell: pwsh
29+
env:
30+
LD_LIBRARY_PATH: ${{github.workspace}}/lib
31+
run: ${{github.workspace}}/tests/ZEngineTests

.github/workflows/job-test-macOS.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,15 @@ jobs:
1717
name: test-macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
1818
runs-on: ${{ inputs.architecture == 'x64' && 'macos-15-intel' || 'macos-latest' }}
1919
steps:
20-
- name: Checkout repository
21-
uses: actions/checkout@v4
22-
2320
- name: Download Artifacts
2421
uses: actions/download-artifact@v4
2522
with:
2623
name: Build-macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
27-
path: Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}
2824

2925
- name: Update access permission of ZEngineTests
30-
run: chmod +x ./Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}/ZEngine/tests/${{ inputs.configuration }}/ZEngineTests
26+
run: chmod +x ${{github.workspace}}/tests/ZEngineTests
3127

3228
- name: Run Tests
33-
run: .\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }} -Architecture ${{ inputs.architecture }}
34-
shell: pwsh
29+
env:
30+
DYLD_LIBRARY_PATH: ${{github.workspace}}/lib
31+
run: ${{github.workspace}}/tests/ZEngineTests

.github/workflows/job-test-windows.yml

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,13 @@ jobs:
1414
name: test-windows-${{ inputs.configuration }}
1515
runs-on: windows-2022
1616
steps:
17-
- name: Checkout repository
18-
uses: actions/checkout@v4
19-
2017
- name: Download All Artifacts
2118
uses: actions/download-artifact@v4
2219
with:
23-
path: Result.Windows.x64.MultiConfig
2420
name: Build-Windows-x64-${{ inputs.configuration }}
2521

26-
- name: Download Vulkan Artifacts
27-
uses: actions/download-artifact@v4
28-
with:
29-
path: vulkan-build
30-
name: Vulkan-build-x64-${{inputs.configuration}}
31-
3222
- name: Run Tests
3323
shell: pwsh
34-
run: |
35-
$env:PATH = ".\vulkan-build\;$env:PATH"
36-
.\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }}
24+
env:
25+
PATH: ${{github.workspace}}\lib
26+
run: ${{github.workspace}}\tests\ZEngineTests.exe

.github/workflows/windows-build.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,13 @@ jobs:
1919

2020
test:
2121
needs: cmake-build
22-
strategy:
23-
matrix:
24-
testConfiguration: [Debug, Release]
2522
uses: ./.github/workflows/job-test-windows.yml
2623
with:
27-
configuration: ${{matrix.testConfiguration}}
24+
configuration: Release
2825

2926
deploy:
3027
needs: test
3128
uses: ./.github/workflows/job-deploy-windows.yml
3229
with:
3330
configuration: Release
34-
targetFramework: ${{inputs.targetFramework}}
31+
targetFramework: ${{inputs.targetFramework}}

0 commit comments

Comments
 (0)