From c80b61cd1f4d858691295d3b1e88facee867c6da Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Sun, 28 Mar 2021 17:44:04 +0200 Subject: [PATCH 1/2] Add Intel compiler for OSX --- .github/workflows/CI.yml | 45 +++++++++++++++++++++++++++++++++++++--- README.md | 1 + 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9aa6982dc..2ec339eed 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -99,9 +99,13 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-20.04] + os: [ubuntu-latest, macos-latest] fc: [ifort] env: + MACOS_HPCKIT_URL: >- + https://registrationcenter-download.intel.com/akdlm/irc_nas/17398/m_HPCKit_p_2021.1.0.2681_offline.dmg + MACOS_FORTRAN_COMPONENTS: >- + intel.oneapi.mac.ifort-compiler FC: ${{ matrix.fc }} steps: @@ -117,7 +121,21 @@ jobs: if: contains(matrix.os, 'ubuntu') run: ci/install_cmake.sh - - name: Add Intel repository + - name: Prepare for cache restore (OSX) + if: contains(matrix.os, 'macos') + run: | + sudo mkdir -p /opt/intel + sudo chown $USER /opt/intel + + - name: Cache Intel install (OSX) + if: contains(matrix.os, 'macos') + id: cache-install + uses: actions/cache@v2 + with: + path: /opt/intel/oneapi + key: install-${{ env.MACOS_HPCKIT_URL }}-${{ env.MACOS_FORTRAN_COMPONENTS }} + + - name: Add Intel repository (Linux) if: contains(matrix.os, 'ubuntu') run: | wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB @@ -126,10 +144,31 @@ jobs: echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt-get update - - name: Install Intel oneAPI compiler + - name: Install Intel oneAPI compiler (Linux) if: contains(matrix.os, 'ubuntu') run: | sudo apt-get install intel-oneapi-compiler-fortran + + - name: Install Intel oneAPI compiler (OSX) + if: contains(matrix.os, 'macos') && steps.cache-install.outputs.cache-hit != 'true' + run: | + curl --output webimage.dmg --url "$URL" --retry 5 --retry-delay 5 + hdiutil attach webimage.dmg + if [ -z "$COMPONENTS" ]; then + sudo /Volumes/"$(basename "$URL" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper -s --action install --eula=accept --continue-with-optional-error=yes --log-dir=. + installer_exit_code=$? + else + sudo /Volumes/"$(basename "$URL" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper -s --action install --components="$COMPONENTS" --eula=accept --continue-with-optional-error=yes --log-dir=. + installer_exit_code=$? + fi + hdiutil detach /Volumes/"$(basename "$URL" .dmg)" -quiet + exit $installer_exit_code + env: + URL: ${{ env.MACOS_HPCKIT_URL }} + COMPONENTS: ${{ env.MACOS_FORTRAN_COMPONENTS }} + + - name: Setup Intel oneAPI environment + run: | source /opt/intel/oneapi/setvars.sh printenv >> $GITHUB_ENV diff --git a/README.md b/README.md index 3b1eaace2..8a1c6422c 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ GCC Fortran | 8 | Windows Server 2019 | x86_64 GCC Fortran (MSYS) | 10 | Windows Server 2019 | x86_64 GCC Fortran (MinGW) | 10 | Windows Server 2019 | x86_64, i686 Intel oneAPI classic | 2021.1 | Ubuntu 20.04 | x86_64 +Intel oneAPI classic | 2021.1 | MacOS Catalina 10.15 | x86_64 The following combinations are known to work, but they are not tested in the CI: From 41f5214845934f0a1ef4c65f3374fabdde1a6b03 Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Thu, 8 Apr 2021 20:49:44 +0200 Subject: [PATCH 2/2] Remove standard semantics for Intel builds --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 056e6bf48..414e8addb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,9 +32,6 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU) endif() elseif(CMAKE_Fortran_COMPILER_ID STREQUAL Intel) add_compile_options(-warn declarations,general,usage,interfaces,unused) - if(NOT CMAKE_Fortran_COMPILER_VERSION VERSION_EQUAL 20.2.1.20200827) - add_compile_options(-standard-semantics) - endif() if(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 18.0) add_compile_options(-stand f15) else()