aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Poirier-Morency <guillaumepoiriermorency@gmail.com>2016-10-15 13:40:41 -0400
committerGuillaume Poirier-Morency <guillaumepoiriermorency@gmail.com>2016-10-24 18:01:27 -0400
commitff6b3c7a2d5cecb00ad60397b50e319b73461752 (patch)
treebee58305649364392fe21c1d14966040a687c5e7
parent263cb6a5f0dcbffdf25e159b3bfa07988838aae9 (diff)
downloadmeson-ff6b3c7a2d5cecb00ad60397b50e319b73461752.zip
meson-ff6b3c7a2d5cecb00ad60397b50e319b73461752.tar.gz
meson-ff6b3c7a2d5cecb00ad60397b50e319b73461752.tar.bz2
vala: Custom header and vapi name (fix #892)
-rw-r--r--mesonbuild/backend/ninjabackend.py4
-rw-r--r--mesonbuild/build.py5
-rw-r--r--test cases/vala/12 custom output/foo.vala0
-rw-r--r--test cases/vala/12 custom output/meson.build9
4 files changed, 16 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index fa537ad..6c99fb1 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -992,11 +992,11 @@ int dummy;
# Library name
args += ['--library=' + target.name]
# Outputted header
- hname = os.path.join(self.get_target_dir(target), target.name + '.h')
+ hname = os.path.join(self.get_target_dir(target), target.vala_header if isinstance(target.vala_header, str) else (target.name + '.h'))
args += ['-H', hname]
valac_outputs.append(hname)
# Outputted vapi file
- base_vapi = target.name + '.vapi'
+ base_vapi = target.vala_vapi if isinstance(target.vala_vapi, str) else (target.name + '.vapi')
vapiname = os.path.join(self.get_target_dir(target), base_vapi)
# Force valac to write the vapi file in the target build dir.
# Without this, it will write it inside c_out_dir
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index e16f118..75766fd 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -55,6 +55,8 @@ known_lib_kwargs.update({'version' : True, # Only for shared libs
'name_prefix' : True,
'name_suffix' : True,
'vs_module_defs' : True, # Only for shared libs
+ 'vala_header': True,
+ 'vala_vapi': True,
'pic' : True, # Only for static libs
})
@@ -449,6 +451,9 @@ class BuildTarget():
if not isinstance(valalist, list):
valalist = [valalist]
self.add_compiler_args('vala', valalist)
+ if not isinstance(self, Executable):
+ self.vala_header = kwargs.get('vala_header', None)
+ self.vala_vapi = kwargs.get('vala_vapi', None)
dlist = stringlistify(kwargs.get('d_args', []))
self.add_compiler_args('d', dlist)
self.link_args = kwargs.get('link_args', [])
diff --git a/test cases/vala/12 custom output/foo.vala b/test cases/vala/12 custom output/foo.vala
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/vala/12 custom output/foo.vala
diff --git a/test cases/vala/12 custom output/meson.build b/test cases/vala/12 custom output/meson.build
new file mode 100644
index 0000000..ef6dbb5
--- /dev/null
+++ b/test cases/vala/12 custom output/meson.build
@@ -0,0 +1,9 @@
+project('valatest', 'c', 'vala')
+
+glib = dependency('glib-2.0')
+gobject = dependency('gobject-2.0')
+
+library('foo-1.0', 'foo.vala',
+ vala_header: 'foo.h',
+ vala_vapi: 'foo.vapi',
+ dependencies: [glib, gobject])