aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/dependencies/base.py5
-rw-r--r--mesonbuild/dependencies/dev.py2
-rw-r--r--mesonbuild/dependencies/ui.py6
-rwxr-xr-xrun_unittests.py10
-rw-r--r--test cases/frameworks/9 wxwidgets/meson.build1
-rw-r--r--test cases/linuxlike/5 dependency versions/meson.build2
-rw-r--r--test cases/vala/16 mixed dependence/meson.build6
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)