diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/build.py | 5 | ||||
-rw-r--r-- | mesonbuild/dependencies/boost.py | 2 | ||||
-rw-r--r-- | mesonbuild/mesonlib.py | 11 | ||||
-rw-r--r-- | mesonbuild/modules/gnome.py | 2 | ||||
-rw-r--r-- | mesonbuild/modules/qt.py | 4 |
5 files changed, 8 insertions, 16 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 770e851..fcd1622 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -827,8 +827,7 @@ just like those detected with the dependency() function.''') self.link_whole(linktarget) c_pchlist, cpp_pchlist, clist, cpplist, cudalist, cslist, valalist, objclist, objcpplist, fortranlist, rustlist \ - = extract_as_list(kwargs, 'c_pch', 'cpp_pch', 'c_args', 'cpp_args', 'cuda_args', 'cs_args', 'vala_args', 'objc_args', - 'objcpp_args', 'fortran_args', 'rust_args') + = [extract_as_list(kwargs, c) for c in ['c_pch', 'cpp_pch', 'c_args', 'cpp_args', 'cuda_args', 'cs_args', 'vala_args', 'objc_args', 'objcpp_args', 'fortran_args', 'rust_args']] self.add_pch('c', c_pchlist) self.add_pch('cpp', cpp_pchlist) @@ -2161,7 +2160,7 @@ class CustomTarget(Target): self.build_always_stale = kwargs['build_always_stale'] if not isinstance(self.build_always_stale, bool): raise InvalidArguments('Argument build_always_stale must be a boolean.') - extra_deps, depend_files = extract_as_list(kwargs, 'depends', 'depend_files', pop = False) + extra_deps, depend_files = [extract_as_list(kwargs, c, pop=False) for c in ['depends', 'depend_files']] for ed in extra_deps: while hasattr(ed, 'held_object'): ed = ed.held_object diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py index 53a0cfb..b07f3ac 100644 --- a/mesonbuild/dependencies/boost.py +++ b/mesonbuild/dependencies/boost.py @@ -272,7 +272,7 @@ class BoostDependency(ExternalDependency): self.boost_root = None # Extract and validate modules - self.modules = mesonlib.extract_as_list(kwargs, 'modules') + self.modules = mesonlib.extract_as_list(kwargs, 'modules') # type: T.List[str] for i in self.modules: if not isinstance(i, str): raise DependencyException('Boost module argument is not a string.') diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index e93b66f..e215dcd 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -1075,22 +1075,15 @@ def listify(item: T.Any, flatten: bool = True) -> T.List[T.Any]: return result -def extract_as_list(dict_object: T.Dict[_T, _U], *keys: _T, pop: bool = False, - flatten: bool = True) -> T.List[T.Union[_U, T.List[_U]]]: +def extract_as_list(dict_object: T.Dict[_T, _U], key: _T, pop: bool = False) -> T.List[_U]: ''' Extracts all values from given dict_object and listifies them. ''' - result = [] # type: T.List[T.Union[_U, T.List[_U]]] fetch = dict_object.get if pop: fetch = dict_object.pop # If there's only one key, we don't return a list with one element - if len(keys) == 1: - return listify(fetch(keys[0], []), flatten=True) - # Return a list of values corresponding to *keys - for key in keys: - result.append(listify(fetch(key, []), flatten=True)) - return result + return listify(fetch(key, []), flatten=True) def typeslistify(item: 'T.Union[_T, T.Sequence[_T]]', diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index ec8935e..e087bcd 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -98,7 +98,7 @@ class GnomeModule(ExtensionModule): cmd = ['glib-compile-resources', '@INPUT@'] - source_dirs, dependencies = mesonlib.extract_as_list(kwargs, 'source_dir', 'dependencies', pop=True) + source_dirs, dependencies = [mesonlib.extract_as_list(kwargs, c, pop=True) for c in ['source_dir', 'dependencies']] if len(args) < 2: raise MesonException('Not enough arguments; the name of the resource ' diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py index 6887bc7..b4f3a49 100644 --- a/mesonbuild/modules/qt.py +++ b/mesonbuild/modules/qt.py @@ -123,7 +123,7 @@ class QtBaseModule(ExtensionModule): @permittedKwargs({'moc_headers', 'moc_sources', 'uic_extra_arguments', 'moc_extra_arguments', 'rcc_extra_arguments', 'include_directories', 'dependencies', 'ui_files', 'qresources', 'method'}) def preprocess(self, state, args, kwargs): rcc_files, ui_files, moc_headers, moc_sources, uic_extra_arguments, moc_extra_arguments, rcc_extra_arguments, sources, include_directories, dependencies \ - = extract_as_list(kwargs, 'qresources', 'ui_files', 'moc_headers', 'moc_sources', 'uic_extra_arguments', 'moc_extra_arguments', 'rcc_extra_arguments', 'sources', 'include_directories', 'dependencies', pop = True) + = [extract_as_list(kwargs, c, pop=True) for c in ['qresources', 'ui_files', 'moc_headers', 'moc_sources', 'uic_extra_arguments', 'moc_extra_arguments', 'rcc_extra_arguments', 'sources', 'include_directories', 'dependencies']] sources += args[1:] method = kwargs.get('method', 'auto') self._detect_tools(state.environment, method) @@ -202,7 +202,7 @@ class QtBaseModule(ExtensionModule): @FeatureNew('qt.compile_translations', '0.44.0') @permittedKwargs({'ts_files', 'install', 'install_dir', 'build_by_default', 'method'}) def compile_translations(self, state, args, kwargs): - ts_files, install_dir = extract_as_list(kwargs, 'ts_files', 'install_dir', pop=True) + ts_files, install_dir = [extract_as_list(kwargs, c, pop=True) for c in ['ts_files', 'install_dir']] self._detect_tools(state.environment, kwargs.get('method', 'auto')) translations = [] for ts in ts_files: |