summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaugier <pierre.augier@univ-grenoble-alpes.fr>2024-09-05 10:23:51 +0200
committerEli Schwartz <eschwartz93@gmail.com>2024-09-24 11:30:21 -0400
commitc572879bc90e098678c4a1a408ba43ea74ed8595 (patch)
treeb91ecffc824d46d5f01728d4d3947b01302493fc
parent179663523acd3f417f7fdefb83ec31244245d748 (diff)
downloadmeson-c572879bc90e098678c4a1a408ba43ea74ed8595.tar.gz
MPI detection: try --showme:compile/--showme:link and -compile_info/-link_info
-rw-r--r--mesonbuild/dependencies/mpi.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/mesonbuild/dependencies/mpi.py b/mesonbuild/dependencies/mpi.py
index 246b31233..2d9e992f6 100644
--- a/mesonbuild/dependencies/mpi.py
+++ b/mesonbuild/dependencies/mpi.py
@@ -10,7 +10,7 @@ import re
from ..environment import detect_cpu_family
from ..mesonlib import Popen_safe
-from .base import DependencyMethods, detect_compiler, SystemDependency
+from .base import DependencyException, DependencyMethods, detect_compiler, SystemDependency
from .configtool import ConfigToolDependency
from .detect import packages
from .factory import factory_methods
@@ -108,9 +108,21 @@ class MPIConfigToolDependency(ConfigToolDependency):
if not self.is_found:
return
- args = self.get_config_value(['-show'], 'link and compile args')
- self.compile_args = self._filter_compile_args(args)
- self.link_args = self._filter_link_args(args)
+ # --showme for OpenMPI, -compile_info/-link_info for MPICH and IntelMPI
+ for comp, link in [('--showme:compile', '--showme:link'), ('-compile_info', '-link_info'), ('-show', None)]:
+ try:
+ c_args = self.get_config_value([comp], 'compile_args')
+ l_args = self.get_config_value([link], 'link_args') if link is not None else c_args
+ except DependencyException:
+ continue
+ else:
+ break
+ else:
+ self.is_found = False
+ return
+
+ self.compile_args = self._filter_compile_args(c_args)
+ self.link_args = self._filter_link_args(l_args)
def _filter_compile_args(self, args: T.List[str]) -> T.List[str]:
"""