@@ -17,15 +17,26 @@ jobs:
1717 vulkan-install : |
1818 # Download and install Vulkan SDK using the tar.gz method
1919 VULKAN_VERSION=$(curl -s https://vulkan.lunarg.com/sdk/latest/linux.txt)
20- curl -O https://sdk.lunarg.com/sdk/download/$VULKAN_VERSION/linux/vulkansdk-linux-x86_64-$VULKAN_VERSION.tar.gz
21- tar xf vulkansdk-linux-x86_64-$VULKAN_VERSION.tar.gz
22- cd $VULKAN_VERSION
23- ./vulkansdk
20+ echo "Using Vulkan SDK version: $VULKAN_VERSION"
21+
22+ # Create a temporary directory for the SDK
23+ mkdir -p vulkan-sdk
24+ cd vulkan-sdk
25+
26+ # Download the SDK
27+ curl -O "https://sdk.lunarg.com/sdk/download/$VULKAN_VERSION/linux/vulkansdk-linux-x86_64-$VULKAN_VERSION.tar.gz"
28+
29+ # Extract the SDK
30+ tar xzf vulkansdk-linux-x86_64-$VULKAN_VERSION.tar.gz
31+
2432 # Set up environment variables
2533 echo "VULKAN_SDK=$PWD/$VULKAN_VERSION/x86_64" >> $GITHUB_ENV
2634 echo "PATH=$PWD/$VULKAN_VERSION/x86_64/bin:$PATH" >> $GITHUB_ENV
2735 echo "LD_LIBRARY_PATH=$PWD/$VULKAN_VERSION/x86_64/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
2836 echo "VK_LAYER_PATH=$PWD/$VULKAN_VERSION/x86_64/etc/vulkan/explicit_layer.d" >> $GITHUB_ENV
37+
38+ # Return to the original directory
39+ cd ..
2940 deps-install : |
3041 sudo apt-get update
3142 sudo apt-get install -y \
@@ -64,17 +75,42 @@ jobs:
6475 fi
6576 - os : windows-latest
6677 vulkan-install : |
78+ # Download the Vulkan SDK installer
6779 Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe" -OutFile "$env:TEMP\vulkan-sdk.exe"
68- Start-Process -FilePath "$env:TEMP\vulkan-sdk.exe" -ArgumentList "--accept-licenses --default-answer --confirm-command install" -Wait
80+
81+ # Run the installer with silent options
82+ Start-Process -FilePath "$env:TEMP\vulkan-sdk.exe" -ArgumentList "--accept-licenses --default-answer --confirm-command install" -Wait -NoNewWindow
83+
84+ # Find the actual installed SDK version
85+ $vulkanPath = Get-ChildItem "C:\VulkanSDK" | Sort-Object -Property Name -Descending | Select-Object -First 1 -ExpandProperty FullName
86+
87+ if (-not $vulkanPath) {
88+ $vulkanPath = "C:\VulkanSDK\latest"
89+ }
90+
6991 # Set environment variables with correct Windows-style paths
70- $vulkanPath = "C:\VulkanSDK\latest"
71- echo "VULKAN_SDK=$vulkanPath" >> $env:GITHUB_ENV
92+ echo "VULKAN_SDK= $vulkanPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
93+
7294 # Add Vulkan SDK to system PATH
73- echo "$vulkanPath\Bin" >> $env:GITHUB_PATH
95+ echo "$vulkanPath\Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
96+
7497 # Set explicit CMake variables
75- echo "CMAKE_PREFIX_PATH=$vulkanPath" >> $env:GITHUB_ENV
76- echo "Vulkan_INCLUDE_DIR=$vulkanPath\Include" >> $env:GITHUB_ENV
77- echo "Vulkan_LIBRARY=$vulkanPath\Lib\vulkan-1.lib" >> $env:GITHUB_ENV
98+ echo "CMAKE_PREFIX_PATH=$vulkanPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
99+ echo "Vulkan_INCLUDE_DIR=$vulkanPath\Include" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
100+ echo "Vulkan_LIBRARY=$vulkanPath\Lib\vulkan-1.lib" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
101+
102+ # Display debug information
103+ Write-Host "Vulkan SDK path: $vulkanPath"
104+ if (Test-Path "$vulkanPath\Lib") {
105+ Write-Host "Lib directory exists"
106+ } else {
107+ Write-Host "Lib directory does not exist"
108+ }
109+ if (Test-Path "$vulkanPath\Include") {
110+ Write-Host "Include directory exists"
111+ } else {
112+ Write-Host "Include directory does not exist"
113+ }
78114 deps-install : |
79115 vcpkg install glfw3:x64-windows glm:x64-windows tinyobjloader:x64-windows stb:x64-windows
80116 echo "CMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" >> $env:GITHUB_ENV
@@ -102,23 +138,42 @@ jobs:
102138 }
103139 - os : macos-latest
104140 vulkan-install : |
141+ # Install MoltenVK (Vulkan implementation for macOS)
105142 brew install molten-vk
106- curl -L -o vulkansdk.dmg "https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg"
107- hdiutil attach vulkansdk.dmg
108- sudo /Volumes/vulkansdk/InstallVulkan.app/Contents/MacOS/InstallVulkan --accept-licenses --default-answer --confirm-command install
109- hdiutil detach /Volumes/vulkansdk
143+
144+ # Get the latest SDK version
145+ VULKAN_VERSION=$(curl -s https://vulkan.lunarg.com/sdk/latest/mac.txt)
146+ echo "Using Vulkan SDK version: $VULKAN_VERSION"
147+
148+ # Create a temporary directory for the SDK
149+ mkdir -p vulkan-sdk
150+ cd vulkan-sdk
151+
152+ # Download and extract the SDK tarball instead of using DMG
153+ curl -L -o vulkansdk.tar.gz "https://sdk.lunarg.com/sdk/download/$VULKAN_VERSION/mac/vulkansdk-macos-$VULKAN_VERSION.tar.gz"
154+ tar -xzf vulkansdk.tar.gz
155+
156+ # Set environment variables
157+ echo "VULKAN_SDK=$PWD/vulkansdk-macos-$VULKAN_VERSION/macOS" >> $GITHUB_ENV
158+ echo "PATH=$PWD/vulkansdk-macos-$VULKAN_VERSION/macOS/bin:$PATH" >> $GITHUB_ENV
159+ echo "DYLD_LIBRARY_PATH=$PWD/vulkansdk-macos-$VULKAN_VERSION/macOS/lib:$DYLD_LIBRARY_PATH" >> $GITHUB_ENV
160+ echo "VK_LAYER_PATH=$PWD/vulkansdk-macos-$VULKAN_VERSION/macOS/share/vulkan/explicit_layer.d" >> $GITHUB_ENV
161+ echo "VK_ICD_FILENAMES=$PWD/vulkansdk-macos-$VULKAN_VERSION/macOS/share/vulkan/icd.d/MoltenVK_icd.json" >> $GITHUB_ENV
162+
163+ # Return to the original directory
164+ cd ..
110165 deps-install : |
111166 # Install available packages through brew
112167 brew install glfw glm
113-
168+
114169 # Install tinyobjloader from source
115170 git clone https://github.com/tinyobjloader/tinyobjloader.git
116171 cd tinyobjloader
117172 cmake -B build -DCMAKE_BUILD_TYPE=Release
118173 cmake --build build --config Release
119174 sudo cmake --install build
120175 cd ..
121-
176+
122177 # Install stb headers
123178 git clone https://github.com/nothings/stb.git
124179 sudo mkdir -p /usr/local/include/stb
@@ -184,17 +239,25 @@ jobs:
184239 exit 1
185240 }
186241
187- - name : Configure CMake
242+ - name : Configure CMake (Windows)
188243 working-directory : ${{github.workspace}}/attachments
244+ if : runner.os == 'Windows'
189245 run : |
190246 cmake -B build -DCMAKE_BUILD_TYPE=Release `
191247 -DVulkan_INCLUDE_DIR="$env:Vulkan_INCLUDE_DIR" `
192248 -DVulkan_LIBRARY="$env:Vulkan_LIBRARY" `
193- -DCMAKE_PREFIX_PATH="$env:VULKAN_SDK"
194- if : runner.os == 'Windows'
249+ -DCMAKE_PREFIX_PATH="$env:VULKAN_SDK" `
250+ -DCMAKE_TOOLCHAIN_FILE="$env:CMAKE_TOOLCHAIN_FILE"
251+
252+ # Display CMake cache to debug Vulkan detection
253+ if (Test-Path "build/CMakeCache.txt") {
254+ Write-Host "CMake cache contents:"
255+ Get-Content "build/CMakeCache.txt" | Select-String -Pattern "Vulkan"
256+ }
195257
196- - name : Configure CMake
258+ - name : Configure CMake (Unix)
197259 working-directory : ${{github.workspace}}/attachments
260+ if : runner.os != 'Windows'
198261 run : cmake -B build -DCMAKE_BUILD_TYPE=Release
199262
200263 - name : Build
0 commit comments