@@ -307,6 +307,71 @@ jobs:
307307 - name : Install Vulkan SDK
308308 run : ${{ matrix.vulkan-install }}
309309
310+ - name : Create Vulkan SDK version symlinks (Ubuntu)
311+ if : runner.os == 'Linux'
312+ run : |
313+ # Get the current Vulkan SDK version
314+ CURRENT_VERSION=$(basename $(dirname $VULKAN_SDK))
315+ echo "Current Vulkan SDK version: $CURRENT_VERSION"
316+
317+ # Create a directory to store version information
318+ VULKAN_BASE_DIR=$(dirname $(dirname $VULKAN_SDK))
319+ echo "Vulkan base directory: $VULKAN_BASE_DIR"
320+
321+ # Create a symlink for the 'latest' directory
322+ mkdir -p $VULKAN_BASE_DIR/latest
323+ ln -sf $VULKAN_SDK $VULKAN_BASE_DIR/latest/x86_64
324+ echo "Created symlink from latest to $CURRENT_VERSION"
325+
326+ # Create a file to track the current version for future runs
327+ echo $CURRENT_VERSION > $VULKAN_BASE_DIR/current_version.txt
328+
329+ # Check if there are any previous versions we need to create symlinks for
330+ if [ -f "$VULKAN_BASE_DIR/previous_versions.txt" ]; then
331+ echo "Found previous versions file, creating symlinks for all previous versions"
332+ while read -r version; do
333+ if [ "$version" != "$CURRENT_VERSION" ] && [ -n "$version" ]; then
334+ echo "Creating symlink from $version to $CURRENT_VERSION"
335+ mkdir -p $VULKAN_BASE_DIR/$version
336+ ln -sf $VULKAN_SDK $VULKAN_BASE_DIR/$version/x86_64
337+ fi
338+ done < $VULKAN_BASE_DIR/previous_versions.txt
339+ fi
340+
341+ # Add current version to the list of previous versions for future runs
342+ if [ ! -f "$VULKAN_BASE_DIR/previous_versions.txt" ] || ! grep -q "^$CURRENT_VERSION$" "$VULKAN_BASE_DIR/previous_versions.txt"; then
343+ echo $CURRENT_VERSION >> $VULKAN_BASE_DIR/previous_versions.txt
344+ fi
345+
346+ # For the first run or if we need to handle hardcoded paths in existing build files,
347+ # create symlinks for known versions that might be referenced
348+ for version in "1.4.313.0" "1.4.321.0"; do
349+ if [ "$version" != "$CURRENT_VERSION" ]; then
350+ echo "Creating symlink from $version to $CURRENT_VERSION"
351+ mkdir -p $VULKAN_BASE_DIR/$version
352+ ln -sf $VULKAN_SDK $VULKAN_BASE_DIR/$version/x86_64
353+ fi
354+ done
355+
356+ # Find any version references in build files and create symlinks for them
357+ if [ -d "${{github.workspace}}/attachments/build" ]; then
358+ echo "Scanning build directory for version references..."
359+ # Find all version patterns like X.Y.ZZZ.W in build files
360+ FOUND_VERSIONS=$(grep -r -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" ${{github.workspace}}/attachments/build 2>/dev/null | grep -v "$CURRENT_VERSION" | sort | uniq || echo "")
361+
362+ for version in $FOUND_VERSIONS; do
363+ if [[ $version =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] && [ "$version" != "$CURRENT_VERSION" ]; then
364+ echo "Found version reference in build files: $version, creating symlink"
365+ mkdir -p $VULKAN_BASE_DIR/$version
366+ ln -sf $VULKAN_SDK $VULKAN_BASE_DIR/$version/x86_64
367+ fi
368+ done
369+ fi
370+
371+ # List all created symlinks
372+ echo "Created the following Vulkan SDK version symlinks:"
373+ find $VULKAN_BASE_DIR -type l -exec ls -la {} \;
374+
310375 - name : Verify Vulkan Installation (Windows)
311376 if : runner.os == 'Windows'
312377 run : |
0 commit comments