From 77c3e6a4aaed07e626f4bf4deb7eb66e0f03a33d Mon Sep 17 00:00:00 2001 From: James Westman Date: Mon, 24 Jun 2019 12:04:12 -0500 Subject: [PATCH] Fix two errors when cross-compiling with Vala - AttributeError: 'ValaCompiler' object has no attribute 'get_program_dirs' Fixed by adding a `get_program_dirs()` function to the base Compiler class, to match `get_library_dirs()` - KeyError: 'vala_COMPILER' Fixed by creating the Vala compile rules for all machines, not just the build machine. --- mesonbuild/backend/ninjabackend.py | 3 +-- mesonbuild/compilers/compilers.py | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index a454e6ab5f..b830e377e4 100644 --- mesonbuild/backend/ninjabackend.py +++ mesonbuild/backend/ninjabackend.py @@ -1653,8 +1653,7 @@ def generate_compile_rule_for(self, langname, compiler): self.generate_cs_compile_rule(compiler) return if langname == 'vala': - if self.environment.machines.matches_build_machine(compiler.for_machine): - self.generate_vala_compile_rules(compiler) + self.generate_vala_compile_rules(compiler) return if langname == 'rust': self.generate_rust_compile_rules(compiler) diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 5855de71c8..86c1e33407 100644 --- mesonbuild/compilers/compilers.py +++ mesonbuild/compilers/compilers.py @@ -1117,6 +1117,9 @@ def find_library(self, *args, **kwargs): def get_library_dirs(self, *args, **kwargs): return () + def get_program_dirs(self, *args, **kwargs): + return () + def has_multi_arguments(self, args, env) -> Tuple[bool, bool]: raise EnvironmentException( 'Language {} does not support has_multi_arguments.'.format(