Skip to content

Commit 401cdd8

Browse files
committed
Set oneapi_fortran=True by default for Intel 2024.0.0+
ifort is deprecated, so default to ifx
1 parent 5f00b71 commit 401cdd8

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

easybuild/toolchains/compiler/intel_compilers.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ class IntelCompilers(IntelIccIfort):
4848
'oneapi': (None, "Use oneAPI compilers icx/icpx/ifx instead of classic compilers"),
4949
'oneapi_c_cxx': (None, "Use oneAPI C/C++ compilers icx/icpx instead of classic Intel C/C++ compilers "
5050
"(auto-enabled for Intel compilers version 2022.2.0, or newer)"),
51-
'oneapi_fortran': (False, "Use oneAPI Fortran compiler ifx instead of classic Intel Fortran compiler"),
51+
'oneapi_fortran': (None, "Use oneAPI Fortran compiler ifx instead of classic Intel Fortran compiler "
52+
"(auto-enabled for Intel compilers version 2024.0.0, or newer)"),
5253
})
5354

5455
def _set_compiler_vars(self):
@@ -75,6 +76,9 @@ def set_variables(self):
7576
# auto-enable use of oneAPI C/C++ compilers for sufficiently recent versions of Intel compilers
7677
comp_ver = self.get_software_version(self.COMPILER_MODULE_NAME)[0]
7778
if LooseVersion(comp_ver) >= LooseVersion('2022.2.0'):
79+
if LooseVersion(comp_ver) >= LooseVersion('2024.0.0'):
80+
if self.options.get('oneapi_fortran', None) is None:
81+
self.options['oneapi_fortran'] = True
7882
if self.options.get('oneapi_c_cxx', None) is None:
7983
self.options['oneapi_c_cxx'] = True
8084

test/framework/toolchain.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1496,6 +1496,37 @@ def test_intel_toolchain_oneapi(self):
14961496
self.assertEqual(os.getenv('F90'), 'ifx')
14971497
self.assertEqual(os.getenv('FC'), 'ifx')
14981498

1499+
self.modtool.purge()
1500+
tc = self.get_toolchain('intel-compilers', version='2024.0.0')
1501+
tc.prepare()
1502+
1503+
# by default (for version >= 2024.0.0): oneAPI C/C++ compiler + oneAPI Fortran compiler
1504+
self.assertEqual(os.getenv('CC'), 'icx')
1505+
self.assertEqual(os.getenv('CXX'), 'icpx')
1506+
self.assertEqual(os.getenv('F77'), 'ifx')
1507+
self.assertEqual(os.getenv('F90'), 'ifx')
1508+
self.assertEqual(os.getenv('FC'), 'ifx')
1509+
1510+
self.modtool.purge()
1511+
tc = self.get_toolchain('intel-compilers', version='2024.0.0')
1512+
tc.set_options({'oneapi_fortran': False})
1513+
tc.prepare()
1514+
self.assertEqual(os.getenv('CC'), 'icx')
1515+
self.assertEqual(os.getenv('CXX'), 'icpx')
1516+
self.assertEqual(os.getenv('F77'), 'ifort')
1517+
self.assertEqual(os.getenv('F90'), 'ifort')
1518+
self.assertEqual(os.getenv('FC'), 'ifort')
1519+
1520+
self.modtool.purge()
1521+
tc = self.get_toolchain('intel-compilers', version='2024.0.0')
1522+
tc.set_options({'oneapi_c_cxx': False, 'oneapi_fortran': False})
1523+
tc.prepare()
1524+
self.assertEqual(os.getenv('CC'), 'icc')
1525+
self.assertEqual(os.getenv('CXX'), 'icpc')
1526+
self.assertEqual(os.getenv('F77'), 'ifort')
1527+
self.assertEqual(os.getenv('F90'), 'ifort')
1528+
self.assertEqual(os.getenv('FC'), 'ifort')
1529+
14991530
self.modtool.purge()
15001531
tc = self.get_toolchain('intel', version='2021b')
15011532
tc.set_options({'oneapi_c_cxx': True})

0 commit comments

Comments
 (0)