environment, env2mfile: Don't shell split paths if they point to a valid executable

Fixes #11128
pull/12260/head
L. E. Segovia 1 year ago committed by Eli Schwartz
parent 1306d15616
commit 878d950887
  1. 5
      mesonbuild/environment.py
  2. 5
      mesonbuild/scripts/env2mfile.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."""

@ -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:

Loading…
Cancel
Save