aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/scripts/azure-pipelines/windows/deploy-inteloneapi.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/scripts/azure-pipelines/windows/deploy-inteloneapi.ps1')
-rw-r--r--vcpkg/scripts/azure-pipelines/windows/deploy-inteloneapi.ps166
1 files changed, 66 insertions, 0 deletions
diff --git a/vcpkg/scripts/azure-pipelines/windows/deploy-inteloneapi.ps1 b/vcpkg/scripts/azure-pipelines/windows/deploy-inteloneapi.ps1
new file mode 100644
index 0000000..6b99d9f
--- /dev/null
+++ b/vcpkg/scripts/azure-pipelines/windows/deploy-inteloneapi.ps1
@@ -0,0 +1,66 @@
+# Copyright (c) Microsoft Corporation.
+# SPDX-License-Identifier: MIT
+
+param([string]$SasToken)
+
+if (Test-Path "$PSScriptRoot/utility-prefix.ps1") {
+ . "$PSScriptRoot/utility-prefix.ps1"
+}
+
+
+[string]$oneAPIBaseUrl
+if ([string]::IsNullOrEmpty($SasToken)) {
+ Write-Host 'Downloading from the Internet'
+ $oneAPIBaseUrl = 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/3bbdaf75-6728-492e-a18c-be654dae9ee2/intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe'
+} else {
+ Write-Host 'Downloading from vcpkgimageminting using SAS token'
+ $SasToken = $SasToken.Replace('"', '')
+ $oneAPIBaseUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe?$SasToken"
+}
+
+$oneAPIHPCComponents = 'intel.oneapi.win.ifort-compiler'
+
+$LocalName = 'intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe'
+
+try {
+ [bool]$doRemove = $false
+ [string]$LocalPath = Join-Path $PSScriptRoot $LocalName
+ if (Test-Path $LocalPath) {
+ Write-Host "Using local Intel oneAPI..."
+ } else {
+ Write-Host "Downloading Intel oneAPI..."
+ $tempPath = Get-TempFilePath
+ New-Item -ItemType Directory -Path $tempPath -Force
+ $LocalPath = Join-Path $tempPath $LocalName
+ curl.exe -L -o $LocalPath $oneAPIBaseUrl
+ $doRemove = $true
+ }
+
+ [string]$extractionPath = Get-TempFilePath
+ Write-Host 'Extracting Intel oneAPI...to folder: ' $extractionPath
+ $proc = Start-Process -FilePath $LocalPath -ArgumentList @('-s ', '-x', '-f', $extractionPath) -Wait -PassThru
+ $exitCode = $proc.ExitCode
+ if ($exitCode -eq 0) {
+ Write-Host 'Extraction successful!'
+ } else {
+ Write-Error "Extraction failed! Exited with $exitCode."
+ throw
+ }
+
+ Write-Host 'Install Intel oneAPI...from folder: ' $extractionPath
+ $proc = Start-Process -FilePath "$extractionPath/bootstrapper.exe" -ArgumentList @('-s ', '--action install', "--components=$oneAPIHPCComponents" , '--eula=accept', '-p=NEED_VS2017_INTEGRATION=0', '-p=NEED_VS2019_INTEGRATION=0', '-p=NEED_VS2022_INTEGRATION=0', '--log-dir=.') -Wait -PassThru
+ $exitCode = $proc.ExitCode
+ if ($exitCode -eq 0) {
+ Write-Host 'Installation successful!'
+ } elseif ($exitCode -eq 3010) {
+ Write-Host 'Installation successful! Exited with 3010 (ERROR_SUCCESS_REBOOT_REQUIRED).'
+ } else {
+ Write-Error "Installation failed! Exited with $exitCode."
+ }
+
+ if ($doRemove) {
+ Remove-Item -Path $LocalPath -Force
+ }
+} catch {
+ Write-Error "Installation failed! Exception: $($_.Exception.Message)"
+}