Skip to content

Commit 56cc9e4

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 56cc9e4

Some content is hidden

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

67 files changed

+509
-396
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: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
configuration:
99
type: string
1010
default: 'Debug'
11+
architecture:
12+
type: string
13+
default: 'x64'
1114

1215
jobs:
1316
test:
@@ -24,8 +27,10 @@ jobs:
2427
path: Result.Linux.x64.${{ inputs.configuration }}
2528

2629
- name: Update access permission of ZEngineTests
27-
run: chmod +x ./Result.Linux.x64.${{ inputs.configuration }}/ZEngine/tests/ZEngineTests
30+
run: chmod +x ./Result.Linux.x64.${{ inputs.configuration }}/tests/ZEngineTests
2831

2932
- name: Run Tests
33+
env:
34+
LD_LIBRARY_PATH: ${{github.workspace}}/lib
3035
run: .\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }}
3136
shell: pwsh

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@ jobs:
1919
steps:
2020
- name: Checkout repository
2121
uses: actions/checkout@v4
22-
22+
2323
- name: Download Artifacts
2424
uses: actions/download-artifact@v4
2525
with:
2626
name: Build-macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
2727
path: Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}
2828

2929
- name: Update access permission of ZEngineTests
30-
run: chmod +x ./Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}/ZEngine/tests/${{ inputs.configuration }}/ZEngineTests
30+
run: chmod +x ./Result.Darwin.${{inputs.architecture}}.${{ inputs.configuration }}/tests/ZEngineTests
3131

3232
- name: Run Tests
33-
run: .\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }} -Architecture ${{ inputs.architecture }}
33+
env:
34+
DYLD_LIBRARY_PATH: ${{github.workspace}}/lib
35+
run: .\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }}
3436
shell: pwsh

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

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@ jobs:
2323
path: Result.Windows.x64.MultiConfig
2424
name: Build-Windows-x64-${{ inputs.configuration }}
2525

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-
3226
- name: Run Tests
3327
shell: pwsh
34-
run: |
35-
$env:PATH = ".\vulkan-build\;$env:PATH"
36-
.\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }}
28+
run: .\Scripts\RunTests.ps1 -Configurations ${{ inputs.configuration }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,3 +424,6 @@ CMakeSettings.json
424424

425425
# MacOS files
426426
.DS_Store
427+
428+
# Vcpkg Install Directory
429+
vcpkg_installed/

0 commit comments

Comments
 (0)