aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2017-06-21 03:25:05 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2017-06-29 14:21:04 +0530
commiteebaef47f0a2ad15d315960b6d18bef1b132cc0b (patch)
tree63f57c0ae5c0bab1a981208a43db8df5d2d88fb8
parent920a7ef454895c796409fd8ec571b29f97a44135 (diff)
downloadmeson-eebaef47f0a2ad15d315960b6d18bef1b132cc0b.zip
meson-eebaef47f0a2ad15d315960b6d18bef1b132cc0b.tar.gz
meson-eebaef47f0a2ad15d315960b6d18bef1b132cc0b.tar.bz2
vala: Only add --use-header for unity builds
Closes https://github.com/mesonbuild/meson/issues/1969
-rw-r--r--mesonbuild/backend/ninjabackend.py8
-rw-r--r--test cases/vala/7 shared library/lib/meson.build10
2 files changed, 16 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index b1f6d85..415b554 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1100,7 +1100,13 @@ int dummy;
args += ['--library=' + target.name]
# Outputted header
hname = os.path.join(self.get_target_dir(target), target.vala_header)
- args += ['-H', hname, '--use-header']
+ args += ['-H', hname]
+ if self.is_unity(target):
+ # Without this the declarations will get duplicated in the .c
+ # files and cause a build failure when all of them are
+ # #include-d in one .c file.
+ # https://github.com/mesonbuild/meson/issues/1969
+ args += ['--use-header']
valac_outputs.append(hname)
# Outputted vapi file
vapiname = os.path.join(self.get_target_dir(target), target.vala_vapi)
diff --git a/test cases/vala/7 shared library/lib/meson.build b/test cases/vala/7 shared library/lib/meson.build
index 78646a8..edeeb96 100644
--- a/test cases/vala/7 shared library/lib/meson.build
+++ b/test cases/vala/7 shared library/lib/meson.build
@@ -1,4 +1,12 @@
-l = shared_library('valalib', 'mylib.vala', dependencies : valadeps)
+args = []
+# https://github.com/mesonbuild/meson/issues/1969
+if get_option('unity') == 'on'
+ vala_args = ['-H', 'mylib.h']
+endif
+
+l = shared_library('valalib', 'mylib.vala',
+ vala_args : args,
+ dependencies : valadeps)
shared_library('installed_vala_lib', 'mylib.vala',
dependencies : valadeps,