aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorL. E. Segovia <amy@amyspark.me>2023-08-30 22:37:21 -0300
committerEli Schwartz <eschwartz93@gmail.com>2023-09-15 07:31:37 -0400
commit878d950887f5d02b830ea190262af5d0491ae0f8 (patch)
tree74a90157378458d2ae4fd9c32bc9f4895f14c07c /mesonbuild
parent1306d156163fcbae2e1bf8cf89b98f7eec1465a3 (diff)
downloadmeson-878d950887f5d02b830ea190262af5d0491ae0f8.zip
meson-878d950887f5d02b830ea190262af5d0491ae0f8.tar.gz
meson-878d950887f5d02b830ea190262af5d0491ae0f8.tar.bz2
environment, env2mfile: Don't shell split paths if they point to a valid executable
Fixes #11128
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/environment.py5
-rwxr-xr-xmesonbuild/scripts/env2mfile.py5
2 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 7590931..53cb120 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -747,7 +747,10 @@ class Environment:
for (name, evar), for_machine in itertools.product(opts, MachineChoice):
p_env = _get_env_var(for_machine, self.is_cross_build(), evar)
if p_env is not None:
- self.binaries[for_machine].binaries.setdefault(name, mesonlib.split_args(p_env))
+ if os.path.exists(p_env):
+ self.binaries[for_machine].binaries.setdefault(name, [p_env])
+ else:
+ self.binaries[for_machine].binaries.setdefault(name, mesonlib.split_args(p_env))
def _set_default_properties_from_env(self) -> None:
"""Properties which can also be set from the environment."""
diff --git a/mesonbuild/scripts/env2mfile.py b/mesonbuild/scripts/env2mfile.py
index df93730..1a6d0ce 100755
--- a/mesonbuild/scripts/env2mfile.py
+++ b/mesonbuild/scripts/env2mfile.py
@@ -296,7 +296,10 @@ def detect_compilers_from_envvars(envvar_suffix: str = '') -> MachineInfo:
compilerstr = os.environ.get(envvarname + envvar_suffix)
if not compilerstr:
continue
- compiler = shlex.split(compilerstr)
+ if os.path.exists(compilerstr):
+ compiler = [compilerstr]
+ else:
+ compiler = shlex.split(compilerstr)
infos.compilers[langname] = compiler
lang_compile_args, lang_link_args = detect_language_args_from_envvars(langname, envvar_suffix)
if lang_compile_args: