diff options
author | Brad King <brad.king@kitware.com> | 2023-05-02 12:49:27 +0000 |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-05-02 08:49:35 -0400 |
commit | 2488d6dbf7481087fa9ee4a0c77c5e3b0a503387 (patch) | |
tree | 7785e8023449b17ab73c1d80b1f54feb042b6d18 | |
parent | c4cc3462036ea9e7217f926a23c7574bb0221702 (diff) | |
parent | 195339e7ac605faad3cbd577a5c2a55672131d20 (diff) | |
download | cmake-2488d6dbf7481087fa9ee4a0c77c5e3b0a503387.tar.gz |
Merge topic 'ci-intel-windows'
195339e7ac gitlab-ci: Add job testing Intel 2021.9.0 compilers on Windows
1b44973343 gitlab-ci: Add job testing IntelLLVM 2023.1.0 compilers on Windows
a5fd03a53d Tests: Teach CompileFeatures to tolerate __STDC_VERSION__ on Intel Classic
1b7649604e Tests: Teach RunCMake to ignore Intel Classic deprecation on Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8447
-rw-r--r-- | .gitlab-ci.yml | 30 | ||||
-rw-r--r-- | .gitlab/.gitignore | 1 | ||||
-rw-r--r-- | .gitlab/ci/configure_windows_intelclassic_ninja.cmake | 1 | ||||
-rw-r--r-- | .gitlab/ci/configure_windows_intelcompiler_common.cmake | 5 | ||||
-rw-r--r-- | .gitlab/ci/configure_windows_inteloneapi_ninja.cmake | 1 | ||||
-rwxr-xr-x | .gitlab/ci/env_windows_intelclassic_ninja.ps1 | 9 | ||||
-rwxr-xr-x | .gitlab/ci/env_windows_inteloneapi_ninja.ps1 | 9 | ||||
-rwxr-xr-x | .gitlab/ci/intel-env.ps1 | 4 | ||||
-rwxr-xr-x | .gitlab/ci/intel-vars.ps1 | 9 | ||||
-rwxr-xr-x | .gitlab/ci/intel.ps1 | 42 | ||||
-rw-r--r-- | .gitlab/os-windows.yml | 16 | ||||
-rw-r--r-- | Tests/CompileFeatures/default_dialect.c | 3 | ||||
-rw-r--r-- | Tests/RunCMake/RunCMake.cmake | 2 |
13 files changed, 130 insertions, 2 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac8e168432..6a4140661b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1178,6 +1178,36 @@ t:windows-clang16.0-gnu-nmake: CMAKE_CI_BUILD_NAME: windows_clang16.0_gnu_nmake CMAKE_CI_JOB_NIGHTLY: "true" +t:windows-intel2021.9.0-ninja: + extends: + - .windows_intelclassic_ninja + - .cmake_test_windows_external + - .windows_x86_64_tags_concurrent + - .cmake_junit_artifacts + - .run_dependent + dependencies: + - t:windows-vs2022-x64-ninja + needs: + - t:windows-vs2022-x64-ninja + variables: + CMAKE_CI_BUILD_NAME: windows_intel2021.9.0_ninja + CMAKE_CI_JOB_NIGHTLY: "true" + +t:windows-oneapi2023.1.0-ninja: + extends: + - .windows_inteloneapi_ninja + - .cmake_test_windows_external + - .windows_x86_64_tags_concurrent + - .cmake_junit_artifacts + - .run_dependent + dependencies: + - t:windows-vs2022-x64-ninja + needs: + - t:windows-vs2022-x64-ninja + variables: + CMAKE_CI_BUILD_NAME: windows_oneapi2023.1.0_ninja + CMAKE_CI_JOB_NIGHTLY: "true" + t:mingw_osdn_io-mingw_makefiles: extends: - .mingw_osdn_io_mingw_makefiles diff --git a/.gitlab/.gitignore b/.gitlab/.gitignore index 381d8fea96..852dfa64d8 100644 --- a/.gitlab/.gitignore +++ b/.gitlab/.gitignore @@ -2,6 +2,7 @@ /5.15.1-0-202009071110* /bcc* /cmake* +/intel /ispc* /innosetup /jom diff --git a/.gitlab/ci/configure_windows_intelclassic_ninja.cmake b/.gitlab/ci/configure_windows_intelclassic_ninja.cmake new file mode 100644 index 0000000000..c2d708baf3 --- /dev/null +++ b/.gitlab/ci/configure_windows_intelclassic_ninja.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_intelcompiler_common.cmake") diff --git a/.gitlab/ci/configure_windows_intelcompiler_common.cmake b/.gitlab/ci/configure_windows_intelcompiler_common.cmake new file mode 100644 index 0000000000..55dce1d3ed --- /dev/null +++ b/.gitlab/ci/configure_windows_intelcompiler_common.cmake @@ -0,0 +1,5 @@ +set(CMake_TEST_Java OFF CACHE BOOL "") + +set(configure_no_sccache 1) + +include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_windows_inteloneapi_ninja.cmake b/.gitlab/ci/configure_windows_inteloneapi_ninja.cmake new file mode 100644 index 0000000000..c2d708baf3 --- /dev/null +++ b/.gitlab/ci/configure_windows_inteloneapi_ninja.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_intelcompiler_common.cmake") diff --git a/.gitlab/ci/env_windows_intelclassic_ninja.ps1 b/.gitlab/ci/env_windows_intelclassic_ninja.ps1 new file mode 100755 index 0000000000..99f83b9cf1 --- /dev/null +++ b/.gitlab/ci/env_windows_intelclassic_ninja.ps1 @@ -0,0 +1,9 @@ +. .gitlab/ci/ninja-env.ps1 +. .gitlab/ci/intel-env.ps1 + +$env:CC = "icl" +$env:CXX = "icl" +$env:FC = "ifort" + +cmd /c "icl 2>&1" | Select -First 1 +cmd /c "ifort 2>&1" | Select -First 1 diff --git a/.gitlab/ci/env_windows_inteloneapi_ninja.ps1 b/.gitlab/ci/env_windows_inteloneapi_ninja.ps1 new file mode 100755 index 0000000000..3bd1d46b48 --- /dev/null +++ b/.gitlab/ci/env_windows_inteloneapi_ninja.ps1 @@ -0,0 +1,9 @@ +. .gitlab/ci/ninja-env.ps1 +. .gitlab/ci/intel-env.ps1 + +$env:CC = "icx" +$env:CXX = "icx" +$env:FC = "ifx" + +cmd /c "icx 2>&1" | Select -First 1 +cmd /c "ifx 2>&1" | Select -First 1 diff --git a/.gitlab/ci/intel-env.ps1 b/.gitlab/ci/intel-env.ps1 new file mode 100755 index 0000000000..75f7286381 --- /dev/null +++ b/.gitlab/ci/intel-env.ps1 @@ -0,0 +1,4 @@ +$pwdpath = $pwd.Path +& "$pwsh" -File ".gitlab/ci/intel.ps1" +Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 +Invoke-Expression -Command .gitlab/ci/intel-vars.ps1 diff --git a/.gitlab/ci/intel-vars.ps1 b/.gitlab/ci/intel-vars.ps1 new file mode 100755 index 0000000000..dde0aa26ea --- /dev/null +++ b/.gitlab/ci/intel-vars.ps1 @@ -0,0 +1,9 @@ +$erroractionpreference = "stop" + +cmd /c "`".gitlab\intel\setvars.bat`" & set" | +foreach { + if ($_ -match "=") { + $v = $_.split("=") + [Environment]::SetEnvironmentVariable($v[0], $v[1]) + } +} diff --git a/.gitlab/ci/intel.ps1 b/.gitlab/ci/intel.ps1 new file mode 100755 index 0000000000..2262669d89 --- /dev/null +++ b/.gitlab/ci/intel.ps1 @@ -0,0 +1,42 @@ +$erroractionpreference = "stop" + +if ("$env:CMAKE_CI_BUILD_NAME" -match "(^|_)(oneapi2023\.1\.0|intel2021\.9\.0)(_|$)") { + # Intel oneAPI 2023.1.0 + $version = "2023.1.0" + $filename = "intel-oneapi-$version-windows-1" + $sha256sum = "5AFCA9E0B03894565209B1295476163ABEBB1F1388E0F3EF5B4D0F9189E65BDC" +} else { + throw ('unknown CMAKE_CI_BUILD_NAME: ' + "$env:CMAKE_CI_BUILD_NAME") +} +$tarball = "$filename.zip" + +$outdir = $pwd.Path +$outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' +# This URL is only visible inside of Kitware's network. See above filename table. +Invoke-WebRequest -Uri "https://cmake.org/files/dependencies/internal/$tarball" -OutFile "$outdir\$tarball" +$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 +if ($hash.Hash -ne $sha256sum) { + exit 1 +} + +Add-Type -AssemblyName System.IO.Compression.FileSystem +[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir") +Move-Item -Path "$outdir\$filename" -Destination "$outdir\intel" +Remove-Item "$outdir\$tarball" + +$compiler = "$outdir\intel\compiler" +$bin = "$compiler\$version\windows\bin" +$null = New-Item -ItemType Junction -Path "$compiler\latest" -Target "$compiler\$version" +$null = New-Item -ItemType HardLink -Path "$bin\icx-cl.exe" -Target "$bin\icx.exe" +$null = New-Item -ItemType HardLink -Path "$bin\icx-cc.exe" -Target "$bin\icx.exe" +$null = New-Item -ItemType HardLink -Path "$bin\icpx.exe" -Target "$bin\icx.exe" +$bin = "$compiler\$version\windows\bin-llvm" +$null = New-Item -ItemType HardLink -Path "$bin\clang-cl.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\clang-cpp.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\clang++.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\lld-link.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\ld.lld.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-lib.exe" -Target "$bin\llvm-ar.exe" +Clear-Variable -Name bin +Clear-Variable -Name compiler diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index f1e86ad3e5..07a479e045 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -222,6 +222,22 @@ variables: CMAKE_CONFIGURATION: windows_msvc_v71_nmake +.windows_intelclassic_ninja: + extends: + - .windows_ninja + - .windows_vcvarsall_vs2022_x64 + + variables: + CMAKE_CONFIGURATION: windows_intelclassic_ninja + +.windows_inteloneapi_ninja: + extends: + - .windows_ninja + - .windows_vcvarsall_vs2022_x64 + + variables: + CMAKE_CONFIGURATION: windows_inteloneapi_ninja + .windows_openwatcom: extends: .windows diff --git a/Tests/CompileFeatures/default_dialect.c b/Tests/CompileFeatures/default_dialect.c index b990e53258..c696c83f3e 100644 --- a/Tests/CompileFeatures/default_dialect.c +++ b/Tests/CompileFeatures/default_dialect.c @@ -20,7 +20,8 @@ # error Buildsystem error # endif # if defined(__STDC_VERSION__) && \ - !(defined(__SUNPRO_C) && __STDC_VERSION__ == 199409L) + !(__STDC_VERSION__ == 199409L && \ + (defined(__INTEL_COMPILER) || defined(__SUNPRO_C))) # error Unexpected __STDC_VERSION__ definition # endif #endif diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake index 8e85f6cf46..b8efe35e30 100644 --- a/Tests/RunCMake/RunCMake.cmake +++ b/Tests/RunCMake/RunCMake.cmake @@ -175,7 +175,7 @@ function(run_cmake test) "|Your license to use PGI[^\n]*expired" "|Please obtain a new version at" "|contact PGI Sales at" - "|icp?c: remark #10441: The Intel\\(R\\) C\\+\\+ Compiler Classic \\(ICC\\) is deprecated" + "|ic(p?c|l): remark #10441: The Intel\\(R\\) C\\+\\+ Compiler Classic \\(ICC\\) is deprecated" "|[^\n]*install_name_tool: warning: changes being made to the file will invalidate the code signature in:" "|[^\n]*xcodebuild[^\n]*DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default" |