aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-07-23 19:35:06 +0300
committerGitHub <noreply@github.com>2017-07-23 19:35:06 +0300
commit3bb1ba873b2e8cfd3be0d7c498e166c4817a0dce (patch)
tree41e475b4044f2cb17d0ca691f42ce748d4d0440d /mesonbuild
parent094c8dc250167f8fe7789c4014014691e89d80cd (diff)
parent6ba6c174ba9a4fa06d06575e609f2c7bfe3f7d8c (diff)
downloadmeson-3bb1ba873b2e8cfd3be0d7c498e166c4817a0dce.zip
meson-3bb1ba873b2e8cfd3be0d7c498e166c4817a0dce.tar.gz
meson-3bb1ba873b2e8cfd3be0d7c498e166c4817a0dce.tar.bz2
Merge pull request #2049 from ebassi/genmarshal-next
Support glib-genmarshal from GLib 2.54
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/modules/gnome.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 883799c..addcab3 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -954,7 +954,8 @@ class GnomeModule(ExtensionModule):
absolute_paths=True)
@permittedKwargs({'sources', 'prefix', 'install_header', 'install_dir', 'stdinc',
- 'nostdinc', 'internal', 'skip_source', 'valist_marshallers'})
+ 'nostdinc', 'internal', 'skip_source', 'valist_marshallers',
+ 'extra_args'})
def genmarshal(self, state, args, kwargs):
if len(args) != 1:
raise MesonException(
@@ -970,15 +971,24 @@ class GnomeModule(ExtensionModule):
raise MesonException(
'Sources keyword argument must be a string or array.')
+ new_genmarshal = mesonlib.version_compare(self._get_native_glib_version(state), '>= 2.53.3')
+
cmd = [find_program('glib-genmarshal', output + '_genmarshal')]
known_kwargs = ['internal', 'nostdinc', 'skip_source', 'stdinc',
- 'valist_marshallers']
+ 'valist_marshallers', 'extra_args']
known_custom_target_kwargs = ['build_always', 'depends',
'depend_files', 'install_dir',
'install_header']
for arg, value in kwargs.items():
if arg == 'prefix':
cmd += ['--prefix', value]
+ elif arg == 'extra_args':
+ if new_genmarshal:
+ cmd += mesonlib.stringlistify(value, [])
+ else:
+ mlog.warning('The current version of GLib does not support extra arguments \n'
+ 'for glib-genmarshal. You need at least GLib 2.53.3. See ',
+ mlog.bold('https://github.com/mesonbuild/meson/pull/2049'))
elif arg in known_kwargs and value:
cmd += ['--' + arg.replace('_', '-')]
elif arg not in known_custom_target_kwargs:
@@ -1014,6 +1024,8 @@ class GnomeModule(ExtensionModule):
custom_kwargs['install'] = install_header
if install_dir is not None:
custom_kwargs['install_dir'] = install_dir
+ if new_genmarshal:
+ cmd += ['--pragma-once']
custom_kwargs['command'] = cmd + ['--header', '@INPUT@']
custom_kwargs['output'] = header_file
header = build.CustomTarget(output + '_h', state.subdir, custom_kwargs)