diff --git a/tools/windows/install-vulkan-sdk.ps1 b/tools/windows/install-vulkan-sdk.ps1 index 36fb67d283..7ac4e6c809 100755 --- a/tools/windows/install-vulkan-sdk.ps1 +++ b/tools/windows/install-vulkan-sdk.ps1 @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + # SPDX-FileCopyrightText: 2023 yuzu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later @@ -10,16 +13,22 @@ if (-not ([bool](net session 2>$null))) { } $VulkanSDKVer = "1.4.328.1" +$VULKAN_SDK = "C:/VulkanSDK/$VulkanSDKVer" $ExeFile = "vulkansdk-windows-X64-$VulkanSDKVer.exe" $Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile" $Destination = "./$ExeFile" +# Check if Vulkan SDK is already installed +if (Test-Path $VULKAN_SDK) { + Write-Host "-- Vulkan SDK already installed at $VULKAN_SDK" + return +} + echo "Downloading Vulkan SDK $VulkanSDKVer from $Uri" $WebClient = New-Object System.Net.WebClient $WebClient.DownloadFile($Uri, $Destination) echo "Finished downloading $ExeFile" -$VULKAN_SDK = "C:/VulkanSDK/$VulkanSDKVer" $Arguments = "--root `"$VULKAN_SDK`" --accept-licenses --default-answer --confirm-command install" echo "Installing Vulkan SDK $VulkanSDKVer" @@ -36,4 +45,4 @@ echo "Finished installing Vulkan SDK $VulkanSDKVer" if ("$env:GITHUB_ACTIONS" -eq "true") { echo "VULKAN_SDK=$VULKAN_SDK" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "$VULKAN_SDK/Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append -} \ No newline at end of file +} diff --git a/tools/windows/install-vulkan-sdk.sh b/tools/windows/install-vulkan-sdk.sh new file mode 100755 index 0000000000..ad97fb3d06 --- /dev/null +++ b/tools/windows/install-vulkan-sdk.sh @@ -0,0 +1,38 @@ +#!/usr/bin/sh +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +: "${VULKAN_SDK_VER:=1.4.328.1}" +: "${VULKAN_SDK:=C:/VulkanSDK/$VULKAN_SDK_VER}" +EXE_FILE="vulkansdk-windows-X64-$VULKAN_SDK_VER.exe" +URI="https://sdk.lunarg.com/sdk/download/$VULKAN_SDK_VER/windows/$EXE_FILE" +DESTINATION="./$EXE_FILE" + +if command -v cygpath >/dev/null 2>&1; then + VULKAN_ROOT_UNIX=$(cygpath -u "$VULKAN_SDK") +else + VULKAN_ROOT_UNIX="$VULKAN_SDK" +fi + +# Check if Vulkan SDK is already installed +if [ -d "$VULKAN_ROOT_UNIX" ]; then + echo "-- Vulkan SDK already installed at $VULKAN_ROOT_UNIX" + exit 0 +fi + +echo "Downloading Vulkan SDK $VULKAN_SDK_VER from $URI" +curl -L -o "$DESTINATION" "$URI" +chmod +x "$DESTINATION" +echo "Finished downloading $EXE_FILE" + +echo "Installing Vulkan SDK $VULKAN_SDK_VER..." +"$DESTINATION" --root "$VULKAN_ROOT_UNIX" --accept-licenses --default-answer --confirm-command install + +echo "Finished installing Vulkan SDK $VULKAN_SDK_VER" + +# GitHub Actions integration +if [ "${GITHUB_ACTIONS:-false}" = "true" ]; then + echo "VULKAN_SDK=$VULKAN_SDK" >> "$GITHUB_ENV" + echo "$VULKAN_SDK/bin" >> "$GITHUB_PATH" +fi + diff --git a/tools/windows/load-msvc-env.sh b/tools/windows/load-msvc-env.sh new file mode 100755 index 0000000000..5f40534f05 --- /dev/null +++ b/tools/windows/load-msvc-env.sh @@ -0,0 +1,7 @@ +#!/usr/bin/sh +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +# shellcheck disable=SC2154 +CLPATH=$(cygpath -u "$VCToolsInstallDir\\bin\\Host${VSCMD_ARG_HOST_ARCH}\\${VSCMD_ARG_TGT_ARCH}") +export PATH="$CLPATH:$PATH"