6767 wget
6868 unzip
6969 curl
70+ hdf5
7071
7172 - name : (Windows) Setup VS Build environment
7273 if : contains(matrix.os,'windows') && contains(matrix.mpi,'intel')
@@ -93,12 +94,12 @@ jobs:
9394 - name : (Ubuntu) Install OpenMPI
9495 if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'openmpi')
9596 run : |
96- sudo apt install -y -q openmpi-bin libopenmpi-dev
97+ sudo apt install -y -q openmpi-bin libopenmpi-dev hwloc fabric libhdf5-dev libhdf5-fortran-102
9798
9899 - name : (Ubuntu) Install MPICH
99100 if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'mpich')
100101 run : |
101- sudo apt install -y -q mpich
102+ sudo apt install -y -q mpich hwloc fabric libhdf5-dev libhdf5-fortran-102
102103
103104 - name : (Ubuntu) Retrieve Intel toolchain
104105 if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
@@ -110,14 +111,27 @@ jobs:
110111
111112 - name : (Ubuntu) Install Intel oneAPI
112113 if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
113- timeout-minutes : 15
114- run : sudo apt-get install intel-oneapi-compiler-dpcpp-cpp-2023.1.0 intel-oneapi-compiler-fortran-2023.1.0 intel-oneapi-mpi-devel ninja-build
114+ uses :
fortran-lang/[email protected] 115+ id : setup-fortran
116+ with :
117+ compiler : intel
118+ version : 2024.1.0
115119
116- - name : (Ubuntu) Setup Intel oneAPI environment
120+ - name : (Ubuntu) finalize oneAPI environment
117121 if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
118122 run : |
119- source /opt/intel/oneapi/setvars.sh
120- printenv >> $GITHUB_ENV
123+ # Install MPI
124+ sudo apt-get install -y -q intel-oneapi-mpi-devel ninja-build cmake
125+ source /opt/intel/oneapi/setvars.sh --force
126+ printenv >> $GITHUB_ENV
127+ # To run HDF5 with oneAPI, we need to build it from source. Use CMake to generate pkg-config info
128+ curl -O -L https://github.com/HDFGroup/hdf5/archive/refs/tags/snapshot-1.14.tar.gz
129+ tar zxf snapshot-1.14.tar.gz
130+ cd hdf5-snapshot-1.14
131+ cmake -B build -DCMAKE_Fortran_COMPILER=ifx -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DHDF5_BUILD_FORTRAN=ON -DCMAKE_INSTALL_PREFIX=/usr
132+ cd build
133+ make -j
134+ sudo make install
121135
122136 - name : (Windows) Put MSYS2_MinGW64 on PATH
123137 if : contains(matrix.os,'windows') && (!contains(matrix.mpi,'intel'))
@@ -197,6 +211,11 @@ jobs:
197211 run : |
198212 brew install openmpi #--cc=gcc-${{ env.GCC_V }} openmpi
199213
214+ - name : (macOS) Install homebrew HDF5
215+ if : contains(matrix.os,'macos')
216+ run : |
217+ brew install hdf5
218+
200219 # Phase 1: Bootstrap fpm with existing version
201220 - name : Install fpm
202221 uses : fortran-lang/setup-fpm@v5
@@ -209,8 +228,8 @@ jobs:
209228 mv $(which fpm) fpm-bootstrap${{ matrix.exe }}
210229 echo "BOOTSTRAP=$PWD/fpm-bootstrap" >> $GITHUB_ENV
211230
212- - name : (macOS) Use gcc/g++ instead of Clang for C/C++
213- if : contains(matrix.os,'macOS')
231+ - name : (macOS/Ubuntu ) Use gcc/g++ instead of Clang for C/C++ / ifx to build fpm
232+ if : contains(matrix.os,'macOS') || contains(matrix.os,'ubuntu')
214233 shell : bash
215234 run : |
216235 echo "FPM_FC=gfortran-${{ env.GCC_V }}" >> $GITHUB_ENV
0 commit comments