Enable MVAPICH2 to use the mpichversion executable to detect externals (#31245)

This is an an alternative to mpiname.
This commit is contained in:
Brian Van Essen 2022-06-22 22:41:25 -07:00 committed by GitHub
parent 31d89e80bc
commit c64298a183
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,7 +21,7 @@ class Mvapich2(AutotoolsPackage):
maintainers = ['natshineman', 'harisubramoni', 'ndcontini'] maintainers = ['natshineman', 'harisubramoni', 'ndcontini']
executables = ['^mpiname$'] executables = ['^mpiname$', '^mpichversion$']
# Prefer the latest stable release # Prefer the latest stable release
version('2.3.7', sha256='4b6ad2c8c270e1fabcd073c49edb6bf95af93780f4a487bc48404a8ca384f34e') version('2.3.7', sha256='4b6ad2c8c270e1fabcd073c49edb6bf95af93780f4a487bc48404a8ca384f34e')
@ -137,8 +137,12 @@ class Mvapich2(AutotoolsPackage):
@classmethod @classmethod
def determine_version(cls, exe): def determine_version(cls, exe):
output = Executable(exe)('-a', output=str, error=str) if exe.endswith('mpichversion'):
match = re.search(r'^MVAPICH2 (\S+)', output) output = Executable(exe)(output=str, error=str)
match = re.search(r'^MVAPICH2 Version:\s*(\S+)', output)
elif exe.endswith('mpiname'):
output = Executable(exe)('-a', output=str, error=str)
match = re.search(r'^MVAPICH2 (\S+)', output)
return match.group(1) if match else None return match.group(1) if match else None
@classmethod @classmethod
@ -152,7 +156,10 @@ def get_spack_compiler_spec(path):
results = [] results = []
for exe in exes: for exe in exes:
variants = '' variants = ''
output = Executable(exe)('-a', output=str, error=str) if exe.endswith('mpichversion'):
output = Executable(exe)(output=str, error=str)
elif exe.endswith('mpiname'):
output = Executable(exe)('-a', output=str, error=str)
if re.search(r'--enable-wrapper-rpath=yes', output): if re.search(r'--enable-wrapper-rpath=yes', output):
variants += '+wrapperrpath' variants += '+wrapperrpath'