diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-07-21 10:49:15 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-08-18 19:46:47 -0700 |
commit | 965fcf2883a758b777a61671aa41d51b27bc1759 (patch) | |
tree | e23d063c94942da0d08677bc1d2068c0138c8323 | |
parent | 35dbf7e6d4da945fbddd78674d686ace95f41e2c (diff) | |
download | meson-965fcf2883a758b777a61671aa41d51b27bc1759.zip meson-965fcf2883a758b777a61671aa41d51b27bc1759.tar.gz meson-965fcf2883a758b777a61671aa41d51b27bc1759.tar.bz2 |
modules/qt: Allow generated sources for arguemnts to compile_moc
-rw-r--r-- | docs/markdown/_include_qt_base.md | 9 | ||||
-rw-r--r-- | mesonbuild/modules/qt.py | 22 |
2 files changed, 24 insertions, 7 deletions
diff --git a/docs/markdown/_include_qt_base.md b/docs/markdown/_include_qt_base.md index bf5e31b..881d1bf 100644 --- a/docs/markdown/_include_qt_base.md +++ b/docs/markdown/_include_qt_base.md @@ -35,9 +35,12 @@ Compiles Qt's moc files (.moc) into header and/or source files. At least one of the keyword arguments `headers` and `sources` must be provided. It takes no positional arguments, and the following keyword arguments: - - `sources` (File | string)[]: A list of sources to be transpiled into .moc - files for manual inclusion. - - `headers` (File | string)[]: A list of headers to be transpiled into .cpp files + - `sources` (File | string | custom_target | custom_target index | generator_output)[]: + A list of sources to be transpiled into .moc files for manual inclusion. + *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output. + - `headers` (File | string | custom_target | custom_target index | generator_output)[]: + A list of headers to be transpiled into .cpp files + *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output. - `extra_args` string[]: Extra arguments to pass directly to `qt-moc` - `method` string: The method to use to detect qt, see `dependency()` for more information. diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py index ed66ae9..653c6f2 100644 --- a/mesonbuild/modules/qt.py +++ b/mesonbuild/modules/qt.py @@ -60,8 +60,8 @@ if T.TYPE_CHECKING: """Keyword arguments for the Moc Compiler method.""" - sources: T.List[T.Union[FileOrString, build.CustomTarget]] - headers: T.List[T.Union[FileOrString, build.CustomTarget]] + sources: T.Sequence[T.Union[FileOrString, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList]] + headers: T.Sequence[T.Union[FileOrString, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList]] extra_args: T.List[str] method: str include_directories: T.List[T.Union[str, build.IncludeDirs]] @@ -366,14 +366,28 @@ class QtBaseModule(ExtensionModule): @noPosargs @typed_kwargs( 'qt.compile_moc', - KwargInfo('sources', ContainerTypeInfo(list, (File, str, build.CustomTarget)), listify=True, default=[]), - KwargInfo('headers', ContainerTypeInfo(list, (File, str, build.CustomTarget)), listify=True, default=[]), + KwargInfo( + 'sources', + ContainerTypeInfo(list, (File, str, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList)), + listify=True, + default=[], + ), + KwargInfo( + 'headers', + ContainerTypeInfo(list, (File, str, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList)), + listify=True, + default=[] + ), KwargInfo('extra_args', ContainerTypeInfo(list, str), listify=True, default=[]), KwargInfo('method', str, default='auto'), KwargInfo('include_directories', ContainerTypeInfo(list, (build.IncludeDirs, str)), listify=True, default=[]), KwargInfo('dependencies', ContainerTypeInfo(list, (Dependency, ExternalLibrary)), listify=True, default=[]), ) def compile_moc(self, state: 'ModuleState', args: T.Tuple, kwargs: 'MocCompilerKwArgs') -> ModuleReturnValue: + if any(isinstance(s, (build.CustomTarget, build.CustomTargetIndex, build.GeneratedList)) for s in kwargs['headers']): + FeatureNew.single_use('qt.compile_moc: custom_target or generator for "headers" keyword argument', '0.60.0', state.subproject) + if any(isinstance(s, (build.CustomTarget, build.CustomTargetIndex, build.GeneratedList)) for s in kwargs['sources']): + FeatureNew.single_use('qt.compile_moc: custom_target or generator for "sources" keyword argument', '0.60.0', state.subproject) out = self._compile_moc_impl(state, kwargs) return ModuleReturnValue(out, [out]) |