@@ -20,17 +20,25 @@ jobs:
20
20
fail-fast : false
21
21
matrix :
22
22
os : [ubuntu-latest, macos-12]
23
- gcc_v : [10, 11, 12, 13] # Version of GFortran we want to use.
23
+ toolchain :
24
+ - {compiler: gcc, version: 10}
25
+ - {compiler: gcc, version: 11}
26
+ - {compiler: gcc, version: 12}
27
+ - {compiler: gcc, version: 13}
28
+ - {compiler: intel, version: '2024.1'}
29
+ - {compiler: intel-classic, version: '2021.9'}
24
30
build : [cmake]
25
31
include :
26
32
- os : ubuntu-latest
27
- gcc_v : 10
28
33
build : cmake-inline
34
+ toolchain :
35
+ - {compiler: gcc, version: 10}
36
+ exclude :
37
+ - os : macos-12
38
+ toolchain : {compiler: intel, version: '2024.1'}
39
+ - os : macos-12
40
+ toolchain : {compiler: gcc, version: 13}
29
41
env :
30
- FC : gfortran-${{ matrix.gcc_v }}
31
- CC : gcc-${{ matrix.gcc_v }}
32
- CXX : g++-${{ matrix.gcc_v }}
33
- GCC_V : ${{ matrix.gcc_v }}
34
42
BUILD_DIR : ${{ matrix.build == 'cmake' && 'build' || '.' }}
35
43
36
44
steps :
@@ -43,29 +51,19 @@ jobs:
43
51
python-version : 3.x
44
52
45
53
- name : Install fypp
46
- run : pip install --upgrade fypp
54
+ run : pip install --upgrade fypp ninja
47
55
48
- - name : Install GCC compilers Linux
49
- if : contains( matrix.os, 'ubuntu')
50
- run : |
51
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test
52
- sudo apt-get update
53
- sudo apt-get install -y gcc-${GCC_V} g++-${GCC_V} gfortran-${GCC_V}
54
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_V} 100 \
55
- --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \
56
- --slave /usr/bin/g++ g++ /usr/bin/g++-${GCC_V} \
57
- --slave /usr/bin/gcov gcov /usr/bin/gcov-${GCC_V}
58
-
59
- - name : Install GCC compilers macOS
60
- if : contains( matrix.os, 'macos')
61
- run : |
62
- brew install gcc@${GCC_V} || brew upgrade gcc@${GCC_V} || true
63
- brew link gcc@${GCC_V}
56
+ - name : Setup Fortran compiler
57
+ uses : fortran-lang/setup-fortran@v1.6.1
58
+ id : setup-fortran
59
+ with :
60
+ compiler : ${{ matrix.toolchain.compiler }}
61
+ version : ${{ matrix.toolchain.version }}
64
62
65
63
- name : Configure with CMake
66
64
if : ${{ contains(matrix.build, 'cmake') }}
67
65
run : >-
68
- cmake -Wdev
66
+ cmake -Wdev -G Ninja
69
67
-DCMAKE_BUILD_TYPE=Release
70
68
-DCMAKE_MAXIMUM_RANK:String=4
71
69
-DCMAKE_INSTALL_PREFIX=$PWD/_dist
@@ -91,157 +89,3 @@ jobs:
91
89
- name : Install project
92
90
if : ${{ contains(matrix.build, 'cmake') }}
93
91
run : cmake --install ${{ env.BUILD_DIR }}
94
-
95
- intel-build-llvm :
96
- runs-on : ${{ matrix.os }}
97
- strategy :
98
- fail-fast : false
99
- matrix :
100
- os : [ubuntu-latest]
101
- fc : [ifx]
102
- cc : [icx]
103
- cxx : [icpx]
104
- env :
105
- FC : ${{ matrix.fc }}
106
- CC : ${{ matrix.cc }}
107
- CXX : ${{ matrix.cxx }}
108
-
109
- steps :
110
- - name : Checkout code
111
- uses : actions/checkout@v4
112
-
113
- - name : Set up Python 3.x
114
- uses : actions/setup-python@v5
115
- with :
116
- python-version : 3.x
117
-
118
- - name : Add Intel repository (Linux)
119
- if : contains(matrix.os, 'ubuntu')
120
- run : |
121
- wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
122
- echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
123
- sudo apt-get update
124
-
125
- - name : Install Intel oneAPI compiler (Linux)
126
- if : contains(matrix.os, 'ubuntu')
127
- run : |
128
- sudo apt-get install intel-oneapi-compiler-fortran
129
- sudo apt-get install intel-oneapi-compiler-dpcpp-cpp
130
-
131
- - name : Setup Intel oneAPI environment
132
- run : |
133
- source /opt/intel/oneapi/setvars.sh
134
- printenv >> $GITHUB_ENV
135
-
136
- - name : Install fypp
137
- run : pip install --upgrade fypp
138
-
139
- - name : Configure with CMake
140
- run : >-
141
- cmake -Wdev
142
- -DCMAKE_BUILD_TYPE=Release
143
- -DCMAKE_MAXIMUM_RANK:String=4
144
- -DCMAKE_INSTALL_PREFIX=$PWD/_dist
145
- -S . -B build
146
-
147
- - name : Build and compile
148
- run : cmake --build build
149
-
150
- - name : catch build fail
151
- run : cmake --build build --verbose --parallel 1
152
- if : failure()
153
-
154
- - name : test
155
- run : ctest --parallel --output-on-failure --no-tests=error
156
- working-directory : build
157
-
158
- - name : Install project
159
- run : cmake --install build
160
-
161
- intel-build-classic :
162
- runs-on : ${{ matrix.os }}
163
- strategy :
164
- fail-fast : false
165
- matrix :
166
- os : [macos-12]
167
- fc : [ifort]
168
- cc : [icc]
169
- cxx : [icpc]
170
- env :
171
- MACOS_HPCKIT_URL : >-
172
- https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a99cb1c5-5af6-4824-9811-ae172d24e594/m_HPCKit_p_2023.1.0.44543.dmg
173
- MACOS_FORTRAN_COMPONENTS : all
174
- FC : ${{ matrix.fc }}
175
- CC : ${{ matrix.cc }}
176
- CXX : ${{ matrix.cxx }}
177
-
178
- steps :
179
- - name : Checkout code
180
- uses : actions/checkout@v4
181
-
182
- - name : Set up Python 3.x
183
- uses : actions/setup-python@v5
184
- with :
185
- python-version : 3.x
186
-
187
- - name : Prepare for cache restore (OSX)
188
- if : contains(matrix.os, 'macos')
189
- run : |
190
- sudo mkdir -p /opt/intel
191
- sudo chown $USER /opt/intel
192
-
193
- - name : Cache Intel install (OSX)
194
- if : contains(matrix.os, 'macos')
195
- id : cache-install
196
- uses : actions/cache@v2
197
- with :
198
- path : /opt/intel/oneapi
199
- key : install-${{ env.MACOS_HPCKIT_URL }}-${{ env.MACOS_FORTRAN_COMPONENTS }}
200
-
201
- - name : Install Intel oneAPI compiler (OSX)
202
- if : contains(matrix.os, 'macos') && steps.cache-install.outputs.cache-hit != 'true'
203
- run : |
204
- curl --output webimage.dmg --url "$URL" --retry 5 --retry-delay 5
205
- hdiutil attach webimage.dmg
206
- if [ -z "$COMPONENTS" ]; then
207
- sudo /Volumes/"$(basename "$URL" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper -s --action install --eula=accept --continue-with-optional-error=yes --log-dir=.
208
- installer_exit_code=$?
209
- else
210
- sudo /Volumes/"$(basename "$URL" .dmg)"/bootstrapper.app/Contents/MacOS/bootstrapper -s --action install --components="$COMPONENTS" --eula=accept --continue-with-optional-error=yes --log-dir=.
211
- installer_exit_code=$?
212
- fi
213
- hdiutil detach /Volumes/"$(basename "$URL" .dmg)" -quiet
214
- exit $installer_exit_code
215
- env :
216
- URL : ${{ env.MACOS_HPCKIT_URL }}
217
- COMPONENTS : ${{ env.MACOS_FORTRAN_COMPONENTS }}
218
-
219
- - name : Setup Intel oneAPI environment
220
- run : |
221
- source /opt/intel/oneapi/setvars.sh
222
- printenv >> $GITHUB_ENV
223
-
224
- - name : Install fypp
225
- run : pip install --upgrade fypp
226
-
227
- - name : Configure with CMake
228
- run : >-
229
- cmake -Wdev
230
- -DCMAKE_BUILD_TYPE=Release
231
- -DCMAKE_MAXIMUM_RANK:String=4
232
- -DCMAKE_INSTALL_PREFIX=$PWD/_dist
233
- -S . -B build
234
-
235
- - name : Build and compile
236
- run : cmake --build build
237
-
238
- - name : catch build fail
239
- run : cmake --build build --verbose --parallel 1
240
- if : failure()
241
-
242
- - name : test
243
- run : ctest --parallel --output-on-failure --no-tests=error
244
- working-directory : build
245
-
246
- - name : Install project
247
- run : cmake --install build
0 commit comments