diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-10-05 11:34:12 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-11-08 12:29:01 -0800 |
commit | 3894f80e21e952d0ab0950dd7f8634de062c4dca (patch) | |
tree | 2d83fb97d140b03b20833c976ad5dd7564886fbf /mesonbuild/modules/gnome.py | |
parent | f8fc5cb860465718fe7c79a1bf1fe00659f138de (diff) | |
download | meson-3894f80e21e952d0ab0950dd7f8634de062c4dca.zip meson-3894f80e21e952d0ab0950dd7f8634de062c4dca.tar.gz meson-3894f80e21e952d0ab0950dd7f8634de062c4dca.tar.bz2 |
modules/gnome: use typed_kwargs for compile_schemas
Diffstat (limited to 'mesonbuild/modules/gnome.py')
-rw-r--r-- | mesonbuild/modules/gnome.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 85bac5c..a695dd5 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -31,6 +31,7 @@ from .. import mesonlib from .. import mlog from ..build import CustomTarget, CustomTargetIndex, GeneratedList from ..dependencies import Dependency, PkgConfigDependency, InternalDependency +from ..interpreter.type_checking import DEPEND_FILES_KW from ..interpreterbase import noPosargs, noKwargs, permittedKwargs, FeatureNew, FeatureNewKwargs, FeatureDeprecatedKwargs, FeatureDeprecated from ..interpreterbase import typed_kwargs, KwargInfo, ContainerTypeInfo from ..interpreterbase.decorators import typed_pos_args @@ -55,6 +56,16 @@ if T.TYPE_CHECKING: gtk_update_icon_cache: bool update_desktop_database: bool + class CompileSchemas(TypedDict): + + build_by_default: bool + depend_files: T.List[FileOrString] + +# Differs from the CustomTarget version in that it straight defaults to True +_BUILD_BY_DEFAULT: KwargInfo[bool] = KwargInfo( + 'build_by_default', bool, default=True, +) + # gresource compilation is broken due to the way # the resource compiler and Ninja clash about it @@ -979,23 +990,22 @@ class GnomeModule(ExtensionModule): return ModuleReturnValue(rv, rv) - @FeatureNewKwargs('build target', '0.40.0', ['build_by_default']) - @permittedKwargs({'build_by_default', 'depend_files'}) @noPosargs - def compile_schemas(self, state: 'ModuleState', args: T.List['TYPE_var'], kwargs) -> ModuleReturnValue: + @typed_kwargs('gnome.compile_schemas', _BUILD_BY_DEFAULT.evolve(since='0.40.0'), DEPEND_FILES_KW) + def compile_schemas(self, state: 'ModuleState', args: T.List['TYPE_var'], kwargs: 'CompileSchemas') -> ModuleReturnValue: srcdir = os.path.join(state.build_to_src, state.subdir) outdir = state.subdir - cmd = [state.find_program('glib-compile-schemas')] - cmd += ['--targetdir', outdir, srcdir] - kwargs['command'] = cmd - kwargs['input'] = [] - kwargs['output'] = 'gschemas.compiled' + cmd = [state.find_program('glib-compile-schemas'), '--targetdir', outdir, srcdir] + ct_kwargs = T.cast(T.Dict[str, T.Any], kwargs.copy()) + ct_kwargs['command'] = cmd + ct_kwargs['input'] = [] + ct_kwargs['output'] = 'gschemas.compiled' if state.subdir == '': targetname = 'gsettings-compile' else: targetname = 'gsettings-compile-' + state.subdir.replace('/', '_') - target_g = build.CustomTarget(targetname, state.subdir, state.subproject, kwargs) + target_g = build.CustomTarget(targetname, state.subdir, state.subproject, ct_kwargs) self._devenv_prepend('GSETTINGS_SCHEMA_DIR', os.path.join(state.environment.get_build_dir(), state.subdir)) return ModuleReturnValue(target_g, [target_g]) |