summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2023-05-03 17:50:40 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-05-03 20:26:32 -0400
commita95ebf10776757664e1c1ad91f662374a31e0133 (patch)
tree262b139750c52ef1c569e180b35bf023671a7e8f
parent8d3e22f50b6a66e3880bbd4b4edd620a8349c498 (diff)
downloadmeson-a95ebf10776757664e1c1ad91f662374a31e0133.tar.gz
dependencies: allow config-tool to fallback to default program names
If the dependency permits it, we can just do a PATH search instead of mandating that it be listed in the cross file. This is useful for the limited case where a specific dependency is known to be compatible with any machine choice. Mark the pybind11 dependency as supporting this. It's a valid choice because pybind11 is a header-only C++ library.
-rw-r--r--mesonbuild/dependencies/configtool.py3
-rw-r--r--mesonbuild/dependencies/python.py3
2 files changed, 5 insertions, 1 deletions
diff --git a/mesonbuild/dependencies/configtool.py b/mesonbuild/dependencies/configtool.py
index 1f16a4316..87cf73875 100644
--- a/mesonbuild/dependencies/configtool.py
+++ b/mesonbuild/dependencies/configtool.py
@@ -43,6 +43,7 @@ class ConfigToolDependency(ExternalDependency):
tool_name: T.Optional[str] = None
version_arg = '--version'
skip_version: T.Optional[str] = None
+ allow_default_for_cross = False
__strip_version = re.compile(r'^[0-9][0-9.]+')
def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any], language: T.Optional[str] = None):
@@ -85,7 +86,7 @@ class ConfigToolDependency(ExternalDependency):
best_match: T.Tuple[T.Optional[T.List[str]], T.Optional[str]] = (None, None)
for potential_bin in find_external_program(
self.env, self.for_machine, self.tool_name,
- self.tool_name, self.tools, allow_default_for_cross=False):
+ self.tool_name, self.tools, allow_default_for_cross=self.allow_default_for_cross):
if not potential_bin.found():
continue
tool = potential_bin.get_command()
diff --git a/mesonbuild/dependencies/python.py b/mesonbuild/dependencies/python.py
index b9fbbbbdc..65fef7f81 100644
--- a/mesonbuild/dependencies/python.py
+++ b/mesonbuild/dependencies/python.py
@@ -55,6 +55,9 @@ class Pybind11ConfigToolDependency(ConfigToolDependency):
tools = ['pybind11-config']
+ # any version of the tool is valid, since this is header-only
+ allow_default_for_cross = True
+
# pybind11 in 2.10.4 added --version, sanity-check another flag unique to it
# in the meantime
skip_version = '--pkgconfigdir'