diff options
author | Jan Niklas Hasse <jhasse@bixense.com> | 2019-04-03 16:44:49 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-04-04 22:12:12 +0300 |
commit | 4e939bcf8ad7e52853877f39b582ce0ed7cdd423 (patch) | |
tree | 109b656446ff80e5bc72e17c996c3eddb6557691 | |
parent | 4f0f618fa92ed3afd9cdf11e8518c04d7b3c2c31 (diff) | |
download | meson-4e939bcf8ad7e52853877f39b582ce0ed7cdd423.zip meson-4e939bcf8ad7e52853877f39b582ce0ed7cdd423.tar.gz meson-4e939bcf8ad7e52853877f39b582ce0ed7cdd423.tar.bz2 |
Use ExternalProgram to find config tools, fix #1423
Needed for wx-config on Windows.
-rw-r--r-- | mesonbuild/dependencies/base.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index af4b13f..ddc56fc 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -419,6 +419,14 @@ class ConfigToolDependency(ExternalDependency): best_match = (None, None) for tool in tools: + if len(tool) == 1: + # In some situations the command can't be directly executed. + # For example Shell scripts need to be called through sh on + # Windows (see issue #1423). + potential_bin = ExternalProgram(tool[0], silent=True) + if not potential_bin.found(): + continue + tool = potential_bin.get_command() try: p, out = Popen_safe(tool + ['--version'])[:2] except (FileNotFoundError, PermissionError): @@ -459,7 +467,7 @@ class ConfigToolDependency(ExternalDependency): elif req_version: found_msg.append('need {!r}'.format(req_version)) else: - found_msg += [mlog.green('YES'), '({})'.format(shutil.which(self.config[0])), version] + found_msg += [mlog.green('YES'), '({})'.format(' '.join(self.config)), version] mlog.log(*found_msg) |