intel-oneapi-mpi: virtual provider support (#20732)

Set up environment and dependent packages properly when building
with intel-oneapi-mpi as a dependency MPI provider (e.g. point to
mpicc compiler wrapper).
This commit is contained in:
Robert Cohn 2021-01-08 13:47:03 -05:00 committed by GitHub
parent 1d4cbcd93f
commit ea0b001597
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -28,6 +28,20 @@ def __init__(self, spec):
url_name='mpi_oneapi') url_name='mpi_oneapi')
super(IntelOneapiMpi, self).__init__(spec) super(IntelOneapiMpi, self).__init__(spec)
def setup_dependent_package(self, module, dep_spec):
dir = join_path(self.prefix, 'mpi', 'latest', 'bin')
self.spec.mpicc = join_path(dir, 'mpicc')
self.spec.mpicxx = join_path(dir, 'mpicxx')
self.spec.mpif77 = join_path(dir, 'mpif77')
self.spec.mpifc = join_path(dir, 'mpifc')
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICH_CC', spack_cc)
env.set('MPICH_CXX', spack_cxx)
env.set('MPICH_F77', spack_f77)
env.set('MPICH_F90', spack_fc)
env.set('MPICH_FC', spack_fc)
@property @property
def libs(self): def libs(self):
libs = [] libs = []