diff options
-rw-r--r-- | mesonbuild/dependencies/base.py | 5 | ||||
-rw-r--r-- | mesonbuild/dependencies/dev.py | 2 | ||||
-rw-r--r-- | mesonbuild/dependencies/ui.py | 6 | ||||
-rwxr-xr-x | run_unittests.py | 10 | ||||
-rw-r--r-- | test cases/frameworks/9 wxwidgets/meson.build | 1 | ||||
-rw-r--r-- | test cases/linuxlike/5 dependency versions/meson.build | 2 | ||||
-rw-r--r-- | test cases/vala/16 mixed dependence/meson.build | 6 |
7 files changed, 21 insertions, 11 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 14ec41e..fdb5ab8 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -528,7 +528,10 @@ class ExternalLibrary(ExternalDependency): C-like code. Note that C++ libraries *can* be linked with C code with a C++ linker (and vice-versa). ''' - if self.language == 'vala' and language != 'vala': + # Using a vala library in a non-vala target, or a non-vala library in a vala target + # XXX: This should be extended to other non-C linkers such as Rust + if (self.language == 'vala' and language != 'vala') or \ + (language == 'vala' and self.language != 'vala'): return [] return self.link_args diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py index d7a7181..f991d3c 100644 --- a/mesonbuild/dependencies/dev.py +++ b/mesonbuild/dependencies/dev.py @@ -236,7 +236,7 @@ class ValgrindDependency(PkgConfigDependency): link to its (static) libraries. ''' def __init__(self, env, kwargs): - super().__init__('valgrind', env, None, kwargs) + super().__init__('valgrind', env, kwargs) def get_link_args(self): return [] diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py index 8537a7e..7cc8bb4 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py @@ -312,7 +312,7 @@ class QtBaseDependency(ExternalDependency): fname = 'Qt' + m fwdep = ExtraFrameworkDependency(fname, False, libdir, self.env, self.language, kwargs) - self.cargs.append('-F' + libdir) + self.compile_args.append('-F' + libdir) if fwdep.found(): self.is_found = True self.compile_args += fwdep.get_compile_args() @@ -426,6 +426,8 @@ class WxDependency(ExternalDependency): self.version = 'none' if WxDependency.wx_found is None: self.check_wxconfig() + else: + self.wxc = WxDependency.wx_found if not WxDependency.wx_found: mlog.log("Neither wx-config-3.0 nor wx-config found; can't detect dependency") return @@ -480,7 +482,7 @@ class WxDependency(ExternalDependency): mlog.log('Found wx-config:', mlog.bold(shutil.which(wxc)), '(%s)' % out.strip()) self.wxc = wxc - WxDependency.wx_found = True + WxDependency.wx_found = wxc return except (FileNotFoundError, PermissionError): pass diff --git a/run_unittests.py b/run_unittests.py index c21db08..61dc0ee 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -30,7 +30,7 @@ import mesonbuild.mlog import mesonbuild.compilers import mesonbuild.environment import mesonbuild.mesonlib -from mesonbuild.mesonlib import is_windows, is_osx, is_cygwin +from mesonbuild.mesonlib import is_windows, is_osx, is_cygwin, windows_proof_rmtree from mesonbuild.environment import Environment from mesonbuild.dependencies import DependencyException from mesonbuild.dependencies import PkgConfigDependency, ExternalProgram @@ -445,7 +445,7 @@ class BasePlatformTests(unittest.TestCase): print(f.read()) def tearDown(self): - shutil.rmtree(self.builddir) + windows_proof_rmtree(self.builddir) os.environ = self.orig_env super().tearDown() @@ -534,7 +534,7 @@ class BasePlatformTests(unittest.TestCase): self._run(self.mconf_command + [arg, self.builddir]) def wipe(self): - shutil.rmtree(self.builddir) + windows_proof_rmtree(self.builddir) def utime(self, f): ensure_backend_detects_changes(self.backend) @@ -1248,7 +1248,7 @@ class FailureTests(BasePlatformTests): def tearDown(self): super().tearDown() - shutil.rmtree(self.srcdir) + windows_proof_rmtree(self.srcdir) def assertMesonRaises(self, contents, match, extra_args=None, langs=None): ''' @@ -1816,7 +1816,7 @@ class RewriterTests(unittest.TestCase): self.test_dir = os.path.join(src_root, 'test cases/rewrite') def tearDown(self): - shutil.rmtree(self.tmpdir) + windows_proof_rmtree(self.tmpdir) def read_contents(self, fname): with open(os.path.join(self.workdir, fname)) as f: diff --git a/test cases/frameworks/9 wxwidgets/meson.build b/test cases/frameworks/9 wxwidgets/meson.build index c1fa367..da3aa26 100644 --- a/test cases/frameworks/9 wxwidgets/meson.build +++ b/test cases/frameworks/9 wxwidgets/meson.build @@ -1,5 +1,6 @@ project('wxwidgets test', 'cpp') +wxd = dependency('wxwidgets', version : '>=5', required : false) wxd = dependency('wxwidgets', version : '>=3.0.0', required : false) if wxd.found() diff --git a/test cases/linuxlike/5 dependency versions/meson.build b/test cases/linuxlike/5 dependency versions/meson.build index ad513f2..d4140b7 100644 --- a/test cases/linuxlike/5 dependency versions/meson.build +++ b/test cases/linuxlike/5 dependency versions/meson.build @@ -92,7 +92,7 @@ endif objc_found = add_languages('objc', required : false) -foreach d : ['sdl2', 'gnustep', 'wx', 'gl', 'python3', 'boost', 'gtest', 'gmock'] +foreach d : ['sdl2', 'gnustep', 'wxwidgets', 'gl', 'python3', 'boost', 'gtest', 'gmock', 'valgrind'] if d == 'gnustep' and not objc_found message('Skipping gnustep because no ObjC compiler found') else diff --git a/test cases/vala/16 mixed dependence/meson.build b/test cases/vala/16 mixed dependence/meson.build index e6967be..b44b47b 100644 --- a/test cases/vala/16 mixed dependence/meson.build +++ b/test cases/vala/16 mixed dependence/meson.build @@ -1,6 +1,10 @@ project('mixed dependence', 'vala', 'c') -deps = [dependency('glib-2.0'), dependency('gobject-2.0')] +cc = meson.get_compiler('c') + +deps = [dependency('glib-2.0'), dependency('gobject-2.0'), + # Should be ignored, see https://github.com/mesonbuild/meson/issues/1939 + cc.find_library('z')] mixer = static_library('mixer', 'mixer.vala', 'mixer-glue.c', dependencies : deps) |