Skip to content

Commit 7ecee14

Browse files
committed
Refine workflow to improve cross-platform dependency setup and Vulkan SDK configuration
- Build `yaml-cpp` from source on Linux for greater control and flexibility. - Adjust Windows Vulkan SDK variables for consistency and add CMake configuration. - Enhance macOS dependency handling by installing `stb` and `tinyobjloader` from source. - Add Vulkan SDK installation verification on Windows.
1 parent b752661 commit 7ecee14

File tree

1 file changed

+50
-7
lines changed

1 file changed

+50
-7
lines changed

.github/workflows/workflow.yml

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@ jobs:
3333
libglm-dev \
3434
libtinyobjloader-dev \
3535
libstb-dev \
36-
libyaml-cpp0.7
36+
cmake
37+
# Build and install yaml-cpp from source
38+
git clone https://github.com/jbeder/yaml-cpp.git
39+
cd yaml-cpp
40+
cmake -B build -DCMAKE_BUILD_TYPE=Release -DYAML_BUILD_SHARED_LIBS=ON
41+
cmake --build build --config Release -j4
42+
sudo cmake --install build
3743
test-cmd: |
3844
# Check if some of the expected executables were built
3945
if [ -f "00_base_code/00_base_code" ]; then
@@ -60,10 +66,15 @@ jobs:
6066
vulkan-install: |
6167
Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe" -OutFile "$env:TEMP\vulkan-sdk.exe"
6268
Start-Process -FilePath "$env:TEMP\vulkan-sdk.exe" -ArgumentList "--accept-licenses --default-answer --confirm-command install" -Wait
63-
# Add these environment variables
64-
echo "VULKAN_SDK=C:\VulkanSDK\latest" >> $env:GITHUB_ENV
65-
echo "VULKAN_INCLUDE_DIR=C:\VulkanSDK\latest\Include" >> $env:GITHUB_ENV
66-
echo "VULKAN_LIBRARY=C:\VulkanSDK\latest\Lib\vulkan-1.lib" >> $env:GITHUB_ENV
69+
# Set environment variables with correct Windows-style paths
70+
$vulkanPath = "C:\VulkanSDK\latest"
71+
echo "VULKAN_SDK=$vulkanPath" >> $env:GITHUB_ENV
72+
# Add Vulkan SDK to system PATH
73+
echo "$vulkanPath\Bin" >> $env:GITHUB_PATH
74+
# 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
6778
deps-install: |
6879
vcpkg install glfw3:x64-windows glm:x64-windows tinyobjloader:x64-windows stb:x64-windows
6980
echo "CMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" >> $env:GITHUB_ENV
@@ -97,13 +108,22 @@ jobs:
97108
sudo /Volumes/vulkansdk/InstallVulkan.app/Contents/MacOS/InstallVulkan --accept-licenses --default-answer --confirm-command install
98109
hdiutil detach /Volumes/vulkansdk
99110
deps-install: |
100-
brew install glfw glm stb
101-
# Install tinyobjloader from source since it's not available in brew
111+
# Install available packages through brew
112+
brew install glfw glm
113+
114+
# Install tinyobjloader from source
102115
git clone https://github.com/tinyobjloader/tinyobjloader.git
103116
cd tinyobjloader
104117
cmake -B build -DCMAKE_BUILD_TYPE=Release
105118
cmake --build build --config Release
106119
sudo cmake --install build
120+
cd ..
121+
122+
# Install stb headers
123+
git clone https://github.com/nothings/stb.git
124+
sudo mkdir -p /usr/local/include/stb
125+
sudo cp stb/*.h /usr/local/include/stb/
126+
107127
test-cmd: |
108128
# Check if some of the expected executables were built
109129
if [ -f "00_base_code/00_base_code" ]; then
@@ -150,6 +170,29 @@ jobs:
150170
- name: Install Vulkan SDK
151171
run: ${{ matrix.vulkan-install }}
152172

173+
- name: Verify Vulkan Installation (Windows)
174+
if: runner.os == 'Windows'
175+
run: |
176+
if (Test-Path $env:VULKAN_SDK) {
177+
echo "Vulkan SDK found at: $env:VULKAN_SDK"
178+
echo "Contents of Lib directory:"
179+
Get-ChildItem "$env:VULKAN_SDK\Lib"
180+
echo "Contents of Include directory:"
181+
Get-ChildItem "$env:VULKAN_SDK\Include"
182+
} else {
183+
echo "Vulkan SDK not found!"
184+
exit 1
185+
}
186+
187+
- name: Configure CMake
188+
working-directory: ${{github.workspace}}/attachments
189+
run: |
190+
cmake -B build -DCMAKE_BUILD_TYPE=Release `
191+
-DVulkan_INCLUDE_DIR="$env:Vulkan_INCLUDE_DIR" `
192+
-DVulkan_LIBRARY="$env:Vulkan_LIBRARY" `
193+
-DCMAKE_PREFIX_PATH="$env:VULKAN_SDK"
194+
if: runner.os == 'Windows'
195+
153196
- name: Configure CMake
154197
working-directory: ${{github.workspace}}/attachments
155198
run: cmake -B build -DCMAKE_BUILD_TYPE=Release

0 commit comments

Comments
 (0)