diff options
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 61481a4..f849f3c 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -21,7 +21,7 @@ from . import optinterpreter from . import compilers from .wrap import wrap, WrapMode from . import mesonlib -from .mesonlib import FileMode, Popen_safe, listify, extract_as_list, has_path_sep +from .mesonlib import FileMode, MachineChoice, Popen_safe, listify, extract_as_list, has_path_sep from .dependencies import ExternalProgram from .dependencies import InternalDependency, Dependency, NotFoundDependency, DependencyException from .interpreterbase import InterpreterBase @@ -1760,7 +1760,7 @@ class MesonMain(InterpreterObject): @permittedKwargs({}) def has_exe_wrapper_method(self, args, kwargs): if self.is_cross_build_method(None, None) and \ - self.build.environment.cross_info.need_exe_wrapper(): + self.build.environment.need_exe_wrapper(): if self.build.environment.exe_wrapper is None: return False # We return True when exe_wrap is defined, when it's not needed, and @@ -1866,7 +1866,7 @@ class MesonMain(InterpreterObject): if not isinstance(propname, str): raise InterpreterException('Property name must be string.') try: - props = self.interpreter.environment.cross_info.get_properties() + props = self.interpreter.environment.properties.host return props[propname] except Exception: if len(args) == 2: @@ -2164,10 +2164,10 @@ class Interpreter(InterpreterBase): def check_cross_stdlibs(self): if self.build.environment.is_cross_build(): - cross_info = self.build.environment.cross_info + props = self.build.environment.properties.host for l, c in self.build.cross_compilers.items(): try: - di = mesonlib.stringlistify(cross_info.get_stdlib(l)) + di = mesonlib.stringlistify(props.get_stdlib(l)) if len(di) != 2: raise InterpreterException('Stdlib definition for %s should have exactly two elements.' % l) @@ -2685,7 +2685,7 @@ external dependencies (including libraries) must go to "dependencies".''') def add_languages(self, args, required): success = True - need_cross_compiler = self.environment.is_cross_build() and self.environment.cross_info.need_cross_compiler() + need_cross_compiler = self.environment.is_cross_build() for lang in sorted(args, key=compilers.sort_clink): lang = lang.lower() if lang in self.coredata.compilers: @@ -2735,7 +2735,8 @@ external dependencies (including libraries) must go to "dependencies".''') self.coredata. base_options[optname] = oobj self.emit_base_options_warnings(enabled_opts) - def _program_from_file(self, prognames, bins, silent): + def program_from_file_for(self, for_machine, prognames, silent): + bins = self.environment.binaries[for_machine] for p in prognames: if hasattr(p, 'held_object'): p = p.held_object @@ -2748,14 +2749,6 @@ external dependencies (including libraries) must go to "dependencies".''') return ExternalProgramHolder(prog) return None - def program_from_cross_file(self, prognames, silent=False): - bins = self.environment.cross_info.config['binaries'] - return self._program_from_file(prognames, bins, silent) - - def program_from_config_file(self, prognames, silent=False): - bins = self.environment.config_info.binaries - return self._program_from_file(prognames, bins, silent) - def program_from_system(self, args, silent=False): # Search for scripts relative to current subdir. # Do not cache found programs because find_program('foobar') @@ -2813,11 +2806,8 @@ external dependencies (including libraries) must go to "dependencies".''') progobj = self.program_from_overrides(args, silent=silent) if progobj is None: - if self.build.environment.is_cross_build() and not native: - progobj = self.program_from_cross_file(args, silent=silent) - else: - progobj = self.program_from_config_file(args, silent=silent) - + for_machine = MachineChoice.BUILD if native else MachineChoice.HOST + progobj = self.program_from_file_for(for_machine, args, silent=silent) if progobj is None: progobj = self.program_from_system(args, silent=silent) if required and (progobj is None or not progobj.found()): @@ -4121,8 +4111,9 @@ This will become a hard error in the future.''') def add_cross_stdlib_info(self, target): for l in self.get_used_languages(target): - if self.environment.cross_info.has_stdlib(l) \ - and self.subproject != self.environment.cross_info.get_stdlib(l)[0]: + props = self.environment.properties.host + if props.has_stdlib(l) \ + and self.subproject != props.get_stdlib(l)[0]: target.add_deps(self.build.cross_stdlibs[l]) def check_sources_exist(self, subdir, sources): |