Skip to content

Commit be78522

Browse files
committed
oneAPI from setup-fortran; HDF5 download+CMake; remove standard-semantics flags
1 parent dcac4bb commit be78522

File tree

4 files changed

+26
-32
lines changed

4 files changed

+26
-32
lines changed

.github/workflows/meta.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,18 @@ jobs:
120120
- name: (Ubuntu) finalize oneAPI environment
121121
if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
122122
run: |
123-
# To run HDF5 with oneAPI, we need to build it from source
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
124128
curl -O -L https://github.com/HDFGroup/hdf5/archive/refs/tags/snapshot-1.14.tar.gz
125129
tar zxf snapshot-1.14.tar.gz
126130
cd hdf5-snapshot-1.14
127-
sh ./autogen.sh
128-
sh ./configure --prefix=/tmp CC="$(which icx)" FC="$(which ifx)" --enable-build-mode=production --enable-fortran
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
129133
make -j
130-
make check -j
134+
sudo make install
131135
132136
- name: (Windows) Put MSYS2_MinGW64 on PATH
133137
if: contains(matrix.os,'windows') && (!contains(matrix.mpi,'intel'))
@@ -224,8 +228,8 @@ jobs:
224228
mv $(which fpm) fpm-bootstrap${{ matrix.exe }}
225229
echo "BOOTSTRAP=$PWD/fpm-bootstrap" >> $GITHUB_ENV
226230
227-
- name: (macOS) Use gcc/g++ instead of Clang for C/C++
228-
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')
229233
shell: bash
230234
run: |
231235
echo "FPM_FC=gfortran-${{ env.GCC_V }}" >> $GITHUB_ENV

src/fpm/manifest/profiles.f90

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -749,25 +749,25 @@ function get_default_profiles(error) result(default_profiles)
749749
& 'ifort', &
750750
& OS_ALL, &
751751
& flags = ' -fp-model precise -pc64 -align all -error-limit 1 -reentrancy&
752-
& threaded -nogen-interfaces -assume byterecl -standard-semantics', &
752+
& threaded -nogen-interfaces -assume byterecl', &
753753
& is_built_in=.true.), &
754754
& new_profile('release', &
755755
& 'ifort', &
756756
& OS_WINDOWS, &
757757
& flags = ' /fp:precise /align:all /error-limit:1 /reentrancy:threaded&
758-
& /nogen-interfaces /assume:byterecl /standard-semantics', &
758+
& /nogen-interfaces /assume:byterecl', &
759759
& is_built_in=.true.), &
760760
& new_profile('release', &
761761
& 'ifx', &
762762
& OS_ALL, &
763763
& flags = ' -fp-model=precise -pc64 -align all -error-limit 1 -reentrancy&
764-
& threaded -nogen-interfaces -assume byterecl -standard-semantics', &
764+
& threaded -nogen-interfaces -assume byterecl', &
765765
& is_built_in=.true.), &
766766
& new_profile('release', &
767767
& 'ifx', &
768768
& OS_WINDOWS, &
769769
& flags = ' /fp:precise /align:all /error-limit:1 /reentrancy:threaded&
770-
& /nogen-interfaces /assume:byterecl /standard-semantics', &
770+
& /nogen-interfaces /assume:byterecl', &
771771
& is_built_in=.true.), &
772772
& new_profile('release', &
773773
&'nagfor', &
@@ -805,28 +805,28 @@ function get_default_profiles(error) result(default_profiles)
805805
& new_profile('debug', &
806806
& 'ifort', &
807807
& OS_ALL, &
808-
& flags = ' -warn all -check all -error-limit 1 -O0 -g -assume byterecl -standard-semantics -traceback', &
808+
& flags = ' -warn all -check all -error-limit 1 -O0 -g -assume byterecl -traceback', &
809809
& is_built_in=.true.), &
810810
& new_profile('debug', &
811811
& 'ifort', &
812812
& OS_WINDOWS, &
813813
& flags = ' /warn:all /check:all /error-limit:1&
814-
& /Od /Z7 /assume:byterecl /standard-semantics /traceback', &
814+
& /Od /Z7 /assume:byterecl /traceback', &
815815
& is_built_in=.true.), &
816816
& new_profile('debug', &
817817
& 'ifx', &
818818
& OS_ALL, &
819-
& flags = ' -warn all -check all -error-limit 1 -O0 -g -assume byterecl -standard-semantics -traceback', &
819+
& flags = ' -warn all -check all -error-limit 1 -O0 -g -assume byterecl -traceback', &
820820
& is_built_in=.true.), &
821821
& new_profile('debug', &
822822
& 'ifx', &
823823
& OS_WINDOWS, &
824-
& flags = ' /warn:all /check:all /error-limit:1 /Od /Z7 /assume:byterecl /standard-semantics', &
824+
& flags = ' /warn:all /check:all /error-limit:1 /Od /Z7 /assume:byterecl', &
825825
& is_built_in=.true.), &
826826
& new_profile('debug', &
827827
& 'ifx', &
828828
& OS_WINDOWS, &
829-
& flags = ' /warn:all /check:all /error-limit:1 /Od /Z7 /assume:byterecl /standard-semantics', &
829+
& flags = ' /warn:all /check:all /error-limit:1 /Od /Z7 /assume:byterecl', &
830830
& is_built_in=.true.), &
831831
& new_profile('debug', &
832832
& 'lfortran', &

src/fpm_compiler.F90

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,7 @@ subroutine get_release_compile_flags(id, flags)
309309
flag_intel_limit//&
310310
flag_intel_pthread//&
311311
flag_intel_nogen//&
312-
flag_intel_byterecl//&
313-
flag_intel_standard_compliance
312+
flag_intel_byterecl
314313

315314
case(id_intel_classic_mac)
316315
flags = &
@@ -320,8 +319,7 @@ subroutine get_release_compile_flags(id, flags)
320319
flag_intel_limit//&
321320
flag_intel_pthread//&
322321
flag_intel_nogen//&
323-
flag_intel_byterecl//&
324-
flag_intel_standard_compliance
322+
flag_intel_byterecl
325323

326324
case(id_intel_classic_windows)
327325
flags = &
@@ -331,8 +329,7 @@ subroutine get_release_compile_flags(id, flags)
331329
flag_intel_limit_win//&
332330
flag_intel_pthread_win//&
333331
flag_intel_nogen_win//&
334-
flag_intel_byterecl_win//&
335-
flag_intel_standard_compliance_win
332+
flag_intel_byterecl_win
336333

337334
case(id_intel_llvm_nix)
338335
flags = &
@@ -342,8 +339,7 @@ subroutine get_release_compile_flags(id, flags)
342339
flag_intel_limit//&
343340
flag_intel_pthread//&
344341
flag_intel_nogen//&
345-
flag_intel_byterecl//&
346-
flag_intel_standard_compliance
342+
flag_intel_byterecl
347343

348344
case(id_intel_llvm_windows)
349345
flags = &
@@ -353,8 +349,7 @@ subroutine get_release_compile_flags(id, flags)
353349
flag_intel_limit_win//&
354350
flag_intel_pthread_win//&
355351
flag_intel_nogen_win//&
356-
flag_intel_byterecl_win//&
357-
flag_intel_standard_compliance_win
352+
flag_intel_byterecl_win
358353

359354
case(id_nag)
360355
flags = &
@@ -418,7 +413,6 @@ subroutine get_debug_compile_flags(id, flags)
418413
flag_intel_limit//&
419414
flag_intel_debug//&
420415
flag_intel_byterecl//&
421-
flag_intel_standard_compliance//&
422416
flag_intel_backtrace
423417

424418
case(id_intel_classic_mac)
@@ -428,7 +422,6 @@ subroutine get_debug_compile_flags(id, flags)
428422
flag_intel_limit//&
429423
flag_intel_debug//&
430424
flag_intel_byterecl//&
431-
flag_intel_standard_compliance//&
432425
flag_intel_backtrace
433426
case(id_intel_classic_windows)
434427
flags = &
@@ -437,7 +430,6 @@ subroutine get_debug_compile_flags(id, flags)
437430
flag_intel_limit_win//&
438431
flag_intel_debug_win//&
439432
flag_intel_byterecl_win//&
440-
flag_intel_standard_compliance_win//&
441433
flag_intel_backtrace_win
442434
case(id_intel_llvm_nix)
443435
flags = &
@@ -446,16 +438,14 @@ subroutine get_debug_compile_flags(id, flags)
446438
flag_intel_limit//&
447439
flag_intel_debug//&
448440
flag_intel_byterecl//&
449-
flag_intel_standard_compliance//&
450441
flag_intel_backtrace
451442
case(id_intel_llvm_windows)
452443
flags = &
453444
flag_intel_warn_win//&
454445
flag_intel_check_win//&
455446
flag_intel_limit_win//&
456447
flag_intel_debug_win//&
457-
flag_intel_byterecl_win//&
458-
flag_intel_standard_compliance_win
448+
flag_intel_byterecl_win
459449
case(id_nag)
460450
flags = &
461451
flag_nag_debug//&

test/fpm_test/test_manifest.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ subroutine test_profiles(error)
556556
compiler = 'ifort'
557557
call find_profile(package%profiles, profile_name, compiler, 3, profile_found, chosen_profile)
558558
if (.not.(chosen_profile%flags.eq.&
559-
' /warn:all /check:all /error-limit:1 /Od /Z7 /assume:byterecl /standard-semantics /traceback')) then
559+
' /warn:all /check:all /error-limit:1 /Od /Z7 /assume:byterecl /traceback')) then
560560
call test_failed(error, "Failed to load built-in profile "//profile_name)
561561
return
562562
end if

0 commit comments

Comments
 (0)