@@ -1376,6 +1376,63 @@ def test_intel_toolchain(self):
13761376 for var in ['CFLAGS' , 'CXXFLAGS' , 'FCFLAGS' , 'FFLAGS' , 'F90FLAGS' ]:
13771377 self .assertTrue ('-openmp' in tc .get_variable (var ))
13781378
1379+ # with compiler-only toolchain the $MPI* variables are not defined
1380+ tc = self .get_toolchain ('intel-compilers' , version = '2021.4.0' )
1381+ tc .set_options ({})
1382+ tc .prepare ()
1383+
1384+ self .assertEqual (os .getenv ('CC' ), 'icc' )
1385+ self .assertEqual (os .getenv ('CXX' ), 'icpc' )
1386+ self .assertEqual (os .getenv ('F77' ), 'ifort' )
1387+ self .assertEqual (os .getenv ('F90' ), 'ifort' )
1388+ self .assertEqual (os .getenv ('FC' ), 'ifort' )
1389+
1390+ self .assertEqual (os .getenv ('MPICC' ), None )
1391+ self .assertEqual (os .getenv ('MPICXX' ), None )
1392+ self .assertEqual (os .getenv ('MPIF77' ), None )
1393+ self .assertEqual (os .getenv ('MPIF90' ), None )
1394+ self .assertEqual (os .getenv ('MPIFC' ), None )
1395+
1396+ def test_intel_toolchain_oneapi (self ):
1397+ """Test for opt-in to oneAPI with intel toolchain"""
1398+
1399+ # for recent versions of intel toolchain, we can opt in to using the new oneAPI compilers
1400+ self .setup_sandbox_for_intel_fftw (self .test_prefix , imklver = '2021.4.0' )
1401+ self .modtool .prepend_module_path (self .test_prefix )
1402+ tc = self .get_toolchain ('intel' , version = '2021b' )
1403+ tc .set_options ({})
1404+ tc .prepare ()
1405+
1406+ # default remains classic compilers for now
1407+ self .assertEqual (os .getenv ('CC' ), 'icc' )
1408+ self .assertEqual (os .getenv ('CXX' ), 'icpc' )
1409+ self .assertEqual (os .getenv ('F77' ), 'ifort' )
1410+ self .assertEqual (os .getenv ('F90' ), 'ifort' )
1411+ self .assertEqual (os .getenv ('FC' ), 'ifort' )
1412+
1413+ self .assertEqual (os .getenv ('MPICC' ), 'mpiicc' )
1414+ self .assertEqual (os .getenv ('MPICXX' ), 'mpiicpc' )
1415+ self .assertEqual (os .getenv ('MPIF77' ), 'mpiifort' )
1416+ self .assertEqual (os .getenv ('MPIF90' ), 'mpiifort' )
1417+ self .assertEqual (os .getenv ('MPIFC' ), 'mpiifort' )
1418+
1419+ self .modtool .purge ()
1420+ tc = self .get_toolchain ('intel' , version = '2021b' )
1421+ tc .set_options ({'oneapi' : True })
1422+ tc .prepare ()
1423+
1424+ self .assertEqual (os .getenv ('CC' ), 'icx' )
1425+ self .assertEqual (os .getenv ('CXX' ), 'icpx' )
1426+ self .assertEqual (os .getenv ('F77' ), 'ifx' )
1427+ self .assertEqual (os .getenv ('F90' ), 'ifx' )
1428+ self .assertEqual (os .getenv ('FC' ), 'ifx' )
1429+
1430+ self .assertEqual (os .getenv ('MPICC' ), 'mpiicc' )
1431+ self .assertEqual (os .getenv ('MPICXX' ), 'mpiicpc' )
1432+ self .assertEqual (os .getenv ('MPIF77' ), 'mpiifort' )
1433+ self .assertEqual (os .getenv ('MPIF90' ), 'mpiifort' )
1434+ self .assertEqual (os .getenv ('MPIFC' ), 'mpiifort' )
1435+
13791436 def test_toolchain_verification (self ):
13801437 """Test verification of toolchain definition."""
13811438 tc = self .get_toolchain ('foss' , version = '2018a' )
0 commit comments