diff options
author | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2017-06-17 15:04:26 +0530 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-06-17 12:34:26 +0300 |
commit | 73c06780f93f7565a39def7ed08e404fbcaae358 (patch) | |
tree | 35755bbdb42e8b4e69878e1c0acd7c835780d4c6 | |
parent | f1996f7291f9735f80b94b3893832829273c906c (diff) | |
download | meson-73c06780f93f7565a39def7ed08e404fbcaae358.zip meson-73c06780f93f7565a39def7ed08e404fbcaae358.tar.gz meson-73c06780f93f7565a39def7ed08e404fbcaae358.tar.bz2 |
Make external library no-op when used with incompatible target (#1941)
* tests: Add a test for C library in Vala target
https://github.com/mesonbuild/meson/issues/1939
* Make external library no-op when used with incompatible target
This is how it used to behave earlier, but we accidentally regressed
Closes https://github.com/mesonbuild/meson/issues/1939
-rw-r--r-- | mesonbuild/dependencies/base.py | 5 | ||||
-rw-r--r-- | test cases/vala/16 mixed dependence/meson.build | 6 |
2 files changed, 9 insertions, 2 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/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) |