|
|
|
@ -123,7 +123,8 @@ class IntrospectionInterpreter(AstInterpreter): |
|
|
|
|
options = {k: v for k, v in self.environment.meson_options.host[''].items() if k.startswith('backend_')} |
|
|
|
|
|
|
|
|
|
self.coredata.set_options(options) |
|
|
|
|
self.func_add_languages(None, proj_langs, None) |
|
|
|
|
self._add_languages(proj_langs, MachineChoice.HOST) |
|
|
|
|
self._add_languages(proj_langs, MachineChoice.BUILD) |
|
|
|
|
|
|
|
|
|
def do_subproject(self, dirname: str) -> None: |
|
|
|
|
subproject_dir_abs = os.path.join(self.environment.get_source_dir(), self.subproject_dir) |
|
|
|
@ -137,9 +138,17 @@ class IntrospectionInterpreter(AstInterpreter): |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
def func_add_languages(self, node: BaseNode, args: T.List[TYPE_nvar], kwargs: T.Dict[str, TYPE_nvar]) -> None: |
|
|
|
|
args = self.flatten_args(args) |
|
|
|
|
kwargs = self.flatten_kwargs(kwargs) |
|
|
|
|
if 'native' in kwargs: |
|
|
|
|
native = kwargs.get('native', False) |
|
|
|
|
self._add_languages(args, MachineChoice.BUILD if native else MachineChoice.HOST) |
|
|
|
|
else: |
|
|
|
|
for for_machine in [MachineChoice.BUILD, MachineChoice.HOST]: |
|
|
|
|
for lang in sorted(args, key=compilers.sort_clink): |
|
|
|
|
self._add_languages(args, for_machine) |
|
|
|
|
|
|
|
|
|
def _add_languages(self, langs: T.List[TYPE_nvar], for_machine: MachineChoice) -> None: |
|
|
|
|
langs = self.flatten_args(langs) |
|
|
|
|
for lang in sorted(langs, key=compilers.sort_clink): |
|
|
|
|
if isinstance(lang, StringNode): |
|
|
|
|
assert isinstance(lang.value, str) |
|
|
|
|
lang = lang.value |
|
|
|
|