diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2022-10-05 16:40:09 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2022-10-28 13:06:52 +0300 |
commit | 2fe3271f773cb4207967271b4a8fb8daa131e4c8 (patch) | |
tree | 6f37a4f1719be7df24a85be119a1792f766692eb /mesonbuild/modules/gnome.py | |
parent | e68fcac919b332c7f9469672a243d2aab1bfea0a (diff) | |
download | meson-2fe3271f773cb4207967271b4a8fb8daa131e4c8.zip meson-2fe3271f773cb4207967271b4a8fb8daa131e4c8.tar.gz meson-2fe3271f773cb4207967271b4a8fb8daa131e4c8.tar.bz2 |
gnome: allow custom targets as gdbus-codegen inputs
Custom targets as sources to `gnome.gdbus_codegen` worked until version 0.60
of Meson, but broke in 0.61 because of the conversion to typed_pos_args
and typed_kwargs. Reinstate this by adding custom targets to the
decorators and annotations.
While generators also used to work, they are a bit tricky because
gdbus_codegen desugars to two custom_targets and therefore the generator
is invoked twice. This should not be a problem, but be explicit and
leave that to a separate commit to highlight the problem.
Fixes: 53a187ba2 ("modules/gnome: use typed_pos_args for gdbus_codegen", 2021-11-01)
Fixes: ef52e6093 ("modules/gnome: use typed_kwargs for gdbus_codegen", 2021-11-08)
Diffstat (limited to 'mesonbuild/modules/gnome.py')
-rw-r--r-- | mesonbuild/modules/gnome.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 0112ab1..e503ee9 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -1570,11 +1570,11 @@ class GnomeModule(ExtensionModule): def gtkdoc_html_dir(self, state: 'ModuleState', args: T.Tuple[str], kwargs: 'TYPE_kwargs') -> str: return os.path.join('share/gtk-doc/html', args[0]) - @typed_pos_args('gnome.gdbus_codegen', str, optargs=[(str, mesonlib.File)]) + @typed_pos_args('gnome.gdbus_codegen', str, optargs=[(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex)]) @typed_kwargs( 'gnome.gdbus_codegen', _BUILD_BY_DEFAULT.evolve(since='0.40.0'), - KwargInfo('sources', ContainerTypeInfo(list, (str, mesonlib.File)), since='0.46.0', default=[], listify=True), + KwargInfo('sources', ContainerTypeInfo(list, (str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex)), since='0.46.0', default=[], listify=True), KwargInfo('extra_args', ContainerTypeInfo(list, str), since='0.47.0', default=[], listify=True), KwargInfo('interface_prefix', (str, NoneType)), KwargInfo('namespace', (str, NoneType)), @@ -1592,10 +1592,10 @@ class GnomeModule(ExtensionModule): validator=in_set_validator({'all', 'none', 'objects'})), INSTALL_DIR_KW.evolve(since='0.46.0') ) - def gdbus_codegen(self, state: 'ModuleState', args: T.Tuple[str, T.Optional['FileOrString']], + def gdbus_codegen(self, state: 'ModuleState', args: T.Tuple[str, T.Optional[T.Union['FileOrString', build.GeneratedTypes]]], kwargs: 'GdbusCodegen') -> ModuleReturnValue: namebase = args[0] - xml_files: T.List['FileOrString'] = [args[1]] if args[1] else [] + xml_files: T.List[T.Union['FileOrString', build.GeneratedTypes]] = [args[1]] if args[1] else [] cmd: T.List[T.Union['ExternalProgram', str]] = [state.find_program('gdbus-codegen')] cmd.extend(kwargs['extra_args']) |