diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-23 19:35:06 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-23 19:35:06 +0300 |
commit | 3bb1ba873b2e8cfd3be0d7c498e166c4817a0dce (patch) | |
tree | 41e475b4044f2cb17d0ca691f42ce748d4d0440d /mesonbuild | |
parent | 094c8dc250167f8fe7789c4014014691e89d80cd (diff) | |
parent | 6ba6c174ba9a4fa06d06575e609f2c7bfe3f7d8c (diff) | |
download | meson-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.py | 16 |
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) |