gdbus_codegen: Support --c-generate-autocleanup

pull/3616/merge
Robert Ancell 7 years ago committed by Nirbheek Chauhan
parent df6909a83c
commit 375dcd546a
  1. 1
      docs/markdown/Gnome-module.md
  2. 9
      mesonbuild/modules/gnome.py

@ -235,6 +235,7 @@ one XML file.
* `interface_prefix`: prefix for the interface
* `namespace`: namespace of the interface
* `extra_args`: (*Added 0.47.0*) additional command line arguments to pass
* `autocleanup`: *(Added 0.47.0)* if set generates autocleanup code. Can be one of `none`, `objects` or `all`
* `object_manager`: *(Added 0.40.0)* if true generates object manager code
* `annotations`: *(Added 0.43.0)* list of lists of 3 strings for the annotation for `'ELEMENT', 'KEY', 'VALUE'`
* `docbook`: *(Added 0.43.0)* prefix to generate `'PREFIX'-NAME.xml` docbooks

@ -881,8 +881,8 @@ This will become a hard error in the future.''')
@FeatureNewKwargs('build target', '0.46.0', ['install_header', 'install_dir', 'sources'])
@FeatureNewKwargs('build target', '0.40.0', ['build_by_default'])
@FeatureNewKwargs('build target', '0.47.0', ['extra_args'])
@permittedKwargs({'interface_prefix', 'namespace', 'extra_args', 'object_manager', 'build_by_default',
@FeatureNewKwargs('build target', '0.47.0', ['extra_args', 'autocleanup'])
@permittedKwargs({'interface_prefix', 'namespace', 'extra_args', 'autocleanup', 'object_manager', 'build_by_default',
'annotations', 'docbook', 'install_header', 'install_dir', 'sources'})
def gdbus_codegen(self, state, args, kwargs):
if len(args) not in (1, 2):
@ -893,6 +893,11 @@ This will become a hard error in the future.''')
cmd = [self.interpreter.find_program_impl('gdbus-codegen')]
extra_args = mesonlib.stringlistify(kwargs.pop('extra_args', []))
cmd += extra_args
autocleanup = kwargs.pop('autocleanup', 'all')
if autocleanup not in ['none', 'objects', 'all']:
raise MesonException(
'Gdbus_codegen does not support %s as an autocleanup value.' % (autocleanup, ))
cmd += ['--c-generate-autocleanup', autocleanup]
if 'interface_prefix' in kwargs:
cmd += ['--interface-prefix', kwargs.pop('interface_prefix')]
if 'namespace' in kwargs:

Loading…
Cancel
Save