@@ -132,9 +132,39 @@ jobs:
132132 exit 1
133133 fi
134134
135- echo "VULKAN_SDK=$VULKAN_SDK_PATH" >> "$GITHUB_ENV"
136- echo "$VULKAN_SDK_PATH/bin" >> "$GITHUB_PATH"
137- echo "CMAKE_PREFIX_PATH=$VULKAN_SDK_PATH" >> "$GITHUB_ENV"
135+ # Most LunarG tarballs have the actual sysroot under `x86_64/`.
136+ # We want `VULKAN_SDK` to point at the directory that contains `include/`, `lib/`, `bin/`.
137+ SDK_SYSROOT="$VULKAN_SDK_PATH"
138+ if [ -d "$VULKAN_SDK_PATH/x86_64" ]; then
139+ SDK_SYSROOT="$VULKAN_SDK_PATH/x86_64"
140+ fi
141+
142+ echo "VULKAN_SDK=$SDK_SYSROOT" >> "$GITHUB_ENV"
143+ echo "$SDK_SYSROOT/bin" >> "$GITHUB_PATH"
144+ echo "CMAKE_PREFIX_PATH=$SDK_SYSROOT" >> "$GITHUB_ENV"
145+
146+ # Force CMake's FindVulkan to use the SDK headers/libs instead of runner system headers.
147+ echo "Vulkan_INCLUDE_DIR=$SDK_SYSROOT/include" >> "$GITHUB_ENV"
148+ if [ -f "$SDK_SYSROOT/lib/libvulkan.so" ]; then
149+ echo "Vulkan_LIBRARY=$SDK_SYSROOT/lib/libvulkan.so" >> "$GITHUB_ENV"
150+ elif [ -f "$SDK_SYSROOT/lib/libvulkan.so.1" ]; then
151+ echo "Vulkan_LIBRARY=$SDK_SYSROOT/lib/libvulkan.so.1" >> "$GITHUB_ENV"
152+ fi
153+
154+ - name : Vulkan SDK diagnostics (Linux)
155+ if : runner.os == 'Linux'
156+ shell : bash
157+ run : |
158+ set -euo pipefail
159+ echo "VULKAN_SDK=$VULKAN_SDK"
160+ echo "Vulkan_INCLUDE_DIR=${Vulkan_INCLUDE_DIR:-}"
161+ echo "Vulkan_LIBRARY=${Vulkan_LIBRARY:-}"
162+ if [ -f "${VULKAN_SDK}/include/vulkan/vulkan.hpp" ]; then
163+ echo "Using SDK vulkan.hpp at: ${VULKAN_SDK}/include/vulkan/vulkan.hpp"
164+ head -n 5 "${VULKAN_SDK}/include/vulkan/vulkan.hpp" || true
165+ else
166+ echo "WARNING: SDK vulkan.hpp not found under ${VULKAN_SDK}/include/vulkan/vulkan.hpp" >&2
167+ fi
138168
139169 # Use the engine's dependency install scripts instead of calling vcpkg directly in CI.
140170 - name : Bootstrap vcpkg (Windows)
@@ -179,11 +209,21 @@ jobs:
179209 - name : Configure (Linux)
180210 if : runner.os == 'Linux'
181211 shell : bash
182- run : >
183- cmake -S . -B build -G Ninja
184- -DCMAKE_BUILD_TYPE=Release
185- -DCMAKE_C_COMPILER=clang
186- -DCMAKE_CXX_COMPILER=clang++
212+ run : |
213+ set -euo pipefail
214+ extra_args=()
215+ if [ -n "${Vulkan_INCLUDE_DIR:-}" ]; then
216+ extra_args+=("-DVulkan_INCLUDE_DIR=${Vulkan_INCLUDE_DIR}")
217+ fi
218+ if [ -n "${Vulkan_LIBRARY:-}" ]; then
219+ extra_args+=("-DVulkan_LIBRARY=${Vulkan_LIBRARY}")
220+ fi
221+
222+ cmake -S . -B build -G Ninja \
223+ -DCMAKE_BUILD_TYPE=Release \
224+ -DCMAKE_C_COMPILER=clang \
225+ -DCMAKE_CXX_COMPILER=clang++ \
226+ "${extra_args[@]}"
187227
188228 - name : Build
189229 run : cmake --build build --target SimpleEngine --parallel 4
0 commit comments