50 lines
2 KiB
PowerShell
50 lines
2 KiB
PowerShell
|
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
|
||
|
$ErrorActionPreference = "Stop"
|
||
|
|
||
|
# Check if running as administrator
|
||
|
if (-not ([bool](net session 2>$null))) {
|
||
|
Write-Host "This script must be run with administrator privileges!"
|
||
|
Exit 1
|
||
|
}
|
||
|
|
||
|
$VSVer = "17"
|
||
|
$ExeFile = "vs_BuildTools.exe"
|
||
|
$Uri = "https://aka.ms/vs/$VSVer/release/$ExeFile"
|
||
|
$Destination = "./$ExeFile"
|
||
|
|
||
|
Write-Host "Downloading Visual Studio Build Tools from $Uri"
|
||
|
$WebClient = New-Object System.Net.WebClient
|
||
|
$WebClient.DownloadFile($Uri, $Destination)
|
||
|
Write-Host "Finished downloading $ExeFile"
|
||
|
|
||
|
$VSROOT = "C:/VSBuildTools/$VSVer"
|
||
|
$Arguments = @(
|
||
|
"--installPath `"$VSROOT`"", # set custom installation path
|
||
|
"--quiet", # suppress UI
|
||
|
"--wait", # wait for installation to complete
|
||
|
"--norestart", # prevent automatic restart
|
||
|
"--add Microsoft.VisualStudio.Workload.VCTools", # add C++ build tools workload
|
||
|
"--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64", # add core x86/x64 C++ tools
|
||
|
"--add Microsoft.VisualStudio.Component.Windows10SDK.19041" # add specific Windows SDK
|
||
|
)
|
||
|
|
||
|
Write-Host "Installing Visual Studio Build Tools"
|
||
|
$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -Wait -ArgumentList $Arguments
|
||
|
$ExitCode = $InstallProcess.ExitCode
|
||
|
|
||
|
if ($ExitCode -ne 0) {
|
||
|
Write-Host "Error installing Visual Studio Build Tools (Error: $ExitCode)"
|
||
|
Exit $ExitCode
|
||
|
}
|
||
|
|
||
|
Write-Host "Finished installing Visual Studio Build Tools"
|
||
|
|
||
|
# Add paths to GitHub Actions environment if running in CI
|
||
|
if ("$env:GITHUB_ACTIONS" -eq "true") {
|
||
|
$VSPath = Join-Path $VSROOT "VC\Tools\MSVC"
|
||
|
Write-Host "Adding Visual Studio paths to GitHub Actions environment"
|
||
|
echo "$VSPath\bin\Hostx64\x64" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||
|
}
|