aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/build.py5
-rw-r--r--mesonbuild/dependencies/boost.py2
-rw-r--r--mesonbuild/mesonlib.py11
-rw-r--r--mesonbuild/modules/gnome.py2
-rw-r--r--mesonbuild/modules/qt.py4
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: