aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-05-10 13:59:10 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-05-10 12:31:04 +0200
commit8a9f7cf1332a0be9b2e90d39483c6aa7c67fffee (patch)
treea9df0dc2c69144444662e5b9da73d38ce79923bd /mesonbuild
parent9565293f16c43056433c797d441eb2a2a0e25a46 (diff)
downloadmeson-8a9f7cf1332a0be9b2e90d39483c6aa7c67fffee.zip
meson-8a9f7cf1332a0be9b2e90d39483c6aa7c67fffee.tar.gz
meson-8a9f7cf1332a0be9b2e90d39483c6aa7c67fffee.tar.bz2
vala: Fix shared_module linking with export_dynamic executable
Need to generate a vapi and a header, and then use that in the shared module. Needed for GNOME games. Closes https://github.com/mesonbuild/meson/issues/3538
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/backend/ninjabackend.py4
-rw-r--r--mesonbuild/build.py2
2 files changed, 4 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index ff28525..c508cec 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1058,6 +1058,8 @@ int dummy;
"""
result = OrderedSet()
for dep in itertools.chain(target.link_targets, target.link_whole_targets):
+ if not dep.is_linkable_target():
+ continue
for i in dep.sources:
if hasattr(i, 'fname'):
i = i.fname
@@ -1180,7 +1182,7 @@ int dummy;
# found inside the build tree (generated sources).
args += ['--directory', c_out_dir]
args += ['--basedir', srcbasedir]
- if not isinstance(target, build.Executable):
+ if target.is_linkable_target():
# Library name
args += ['--library', target.name]
# Outputted header
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 1750661..362a6de 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -698,7 +698,7 @@ just like those detected with the dependency() function.''')
for key, value in compiler_args.items():
self.add_compiler_args(key, value)
- if not isinstance(self, Executable):
+ if not isinstance(self, Executable) or 'export_dynamic' in kwargs:
self.vala_header = kwargs.get('vala_header', self.name + '.h')
self.vala_vapi = kwargs.get('vala_vapi', self.name + '.vapi')
self.vala_gir = kwargs.get('vala_gir', None)