aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-07-10 17:52:01 -0400
committerEli Schwartz <eschwartz@archlinux.org>2022-07-10 17:52:06 -0400
commit6c34f73adf19e6cebb6d2237c7f519ef1d4c05c9 (patch)
tree281263beac60054be1b5d28bd5f4a4b2237bd461
parente7d87b6f58c653c3962479f59867397ffc15c32f (diff)
downloadmeson-0.63.0-ifort.zip
meson-0.63.0-ifort.tar.gz
meson-0.63.0-ifort.tar.bz2
CI: install ifort on Windows0.63.0-ifort
This enables the fortran tests for Azure.
-rw-r--r--azure-pipelines.yml28
-rwxr-xr-xci/intel-scripts/cache_exclude_windows.sh15
-rw-r--r--ci/intel-scripts/install_windows.bat16
3 files changed, 59 insertions, 0 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 2bdc65a..d02cdc4 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,3 +1,16 @@
+# intel oneapi installation is based on the examples at
+# https://github.com/oneapi-src/oneapi-ci
+#
+# and are copyrighted:
+#
+# SPDX-FileCopyrightText: 2020 Intel Corporation
+# SPDX-License-Identifier: MIT
+#
+# The rest of this file contains the standard Meson project copyright:
+#
+# SPDX-License-Identifer: Apache-2.0
+# Copyright 2022 The Meson development team
+
name: $(BuildID)
trigger:
@@ -35,6 +48,8 @@ pr:
variables:
CI: 1
SOURCE_VERSION: $(Build.SourceVersion)
+ WINDOWS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18680/w_HPCKit_p_2022.2.0.173_offline.exe
+ WINDOWS_FORTRAN_COMPONENTS: intel.oneapi.win.ifort-compiler
jobs:
@@ -60,6 +75,19 @@ jobs:
backend: ninja
steps:
+ - task: Cache@2
+ inputs:
+ path: |
+ C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat
+ C:\Program Files (x86)\Intel\oneAPI\compiler
+ key: '"vcvars" | "install" | "$(WINDOWS_HPCKIT_URL)" | "$(WINDOWS_FORTRAN_COMPONENTS)" | "compiler" | scripts/cache_exclude_windows.sh'
+ cacheHitVar: CACHE_RESTORED
+ - script: ci/intel-scripts/install_windows.bat $(WINDOWS_HPCKIT_URL) $(WINDOWS_FORTRAN_COMPONENTS)
+ displayName: install ifort
+ condition: ne(variables.CACHE_RESTORED, 'true')
+ - bash: ci/intel-scripts/cache_exclude_windows.sh
+ displayName: exclude unused files from cache
+ condition: ne(variables.CACHE_RESTORED, 'true')
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
diff --git a/ci/intel-scripts/cache_exclude_windows.sh b/ci/intel-scripts/cache_exclude_windows.sh
new file mode 100755
index 0000000..ba672f2
--- /dev/null
+++ b/ci/intel-scripts/cache_exclude_windows.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# SPDX-FileCopyrightText: 2020 Intel Corporation
+#
+# SPDX-License-Identifier: MIT
+
+#shellcheck disable=SC2010
+LATEST_VERSION=$(ls -1 "C:\Program Files (x86)\Intel\oneAPI\compiler" | grep -v latest | sort | tail -1)
+
+rm -rf "C:\Program Files (x86)\Intel\oneAPI\compiler\'$LATEST_VERSION'\windows\compiler\lib\ia32_win"
+rm -rf "C:\Program Files (x86)\Intel\oneAPI\compiler\'$LATEST_VERSION'\windows\bin\intel64_ia32"
+rm -rf "C:\Program Files (x86)\Intel\oneAPI\compiler\'$LATEST_VERSION'\windows\lib\emu"
+rm -rf "C:\Program Files (x86)\Intel\oneAPI\compiler\'$LATEST_VERSION'\windows\lib\oclfpga"
+rm -rf "C:\Program Files (x86)\Intel\oneAPI\compiler\'$LATEST_VERSION'\windows\lib\ocloc"
+rm -rf "C:\Program Files (x86)\Intel\oneAPI\compiler\'$LATEST_VERSION'\windows\lib\x86"
diff --git a/ci/intel-scripts/install_windows.bat b/ci/intel-scripts/install_windows.bat
new file mode 100644
index 0000000..ebba9d5
--- /dev/null
+++ b/ci/intel-scripts/install_windows.bat
@@ -0,0 +1,16 @@
+REM SPDX-FileCopyrightText: 2022 Intel Corporation
+REM
+REM SPDX-License-Identifier: MIT
+
+set URL=%1
+set COMPONENTS=%2
+
+curl.exe --output %TEMP%\webimage.exe --url %URL% --retry 5 --retry-delay 5
+start /b /wait %TEMP%\webimage.exe -s -x -f webimage_extracted --log extract.log
+del %TEMP%\webimage.exe
+if "%COMPONENTS%"=="" (
+ webimage_extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.
+) else (
+ webimage_extracted\bootstrapper.exe -s --action install --components=%COMPONENTS% --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.
+)
+rd /s/q "webimage_extracted"