aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2021-03-11 09:08:53 -0500
committerXavier Claessens <xclaesse@gmail.com>2021-03-16 18:17:58 -0400
commit6415453f17f85e16d1d2ca3553325b769d0f124d (patch)
tree015a859fdd05f888ea75b906d88d2b31dd182155
parenta0689647a9b09544e0ce2b2d3d7e7a4f07f7f2bd (diff)
downloadmeson-6415453f17f85e16d1d2ca3553325b769d0f124d.zip
meson-6415453f17f85e16d1d2ca3553325b769d0f124d.tar.gz
meson-6415453f17f85e16d1d2ca3553325b769d0f124d.tar.bz2
externalproject: Flatten configure_options kwarg
-rw-r--r--mesonbuild/modules/unstable_external_project.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/mesonbuild/modules/unstable_external_project.py b/mesonbuild/modules/unstable_external_project.py
index faa1285..2e48611 100644
--- a/mesonbuild/modules/unstable_external_project.py
+++ b/mesonbuild/modules/unstable_external_project.py
@@ -16,12 +16,12 @@ import os, subprocess, shlex
from pathlib import Path
import typing as T
-from . import ExtensionModule, ModuleReturnValue
+from . import ExtensionModule, ModuleReturnValue, ModuleState
from .. import mlog, build
from ..mesonlib import (MesonException, Popen_safe, MachineChoice,
- get_variable_regex, do_replacement)
+ get_variable_regex, do_replacement, extract_as_list)
from ..interpreterbase import InterpreterObject, InterpreterException, FeatureNew
-from ..interpreterbase import stringArgs, permittedKwargs
+from ..interpreterbase import stringArgs, permittedKwargs, typed_pos_args
from ..interpreter import Interpreter, DependencyHolder
from ..compilers.compilers import CFLAGS_MAPPING, CEXE_MAPPING
from ..dependencies.base import InternalDependency, PkgConfigDependency
@@ -255,15 +255,18 @@ class ExternalProjectModule(ExtensionModule):
@FeatureNew('External build system Module', '0.56.0')
def __init__(self, interpreter):
super().__init__(interpreter)
+ self.methods.update({'add_project': self.add_project,
+ })
@stringArgs
@permittedKwargs({'configure_options', 'cross_configure_options', 'verbose', 'env'})
- def add_project(self, state, args, kwargs):
- if len(args) != 1:
- raise InterpreterException('add_project takes exactly one positional argument')
+ @typed_pos_args('add_project', str)
+ def add_project(self, state: ModuleState, args: T.Tuple[str], kwargs: T.Dict[str, T.Any]):
configure_command = args[0]
- configure_options = kwargs.get('configure_options', [])
- cross_configure_options = kwargs.get('cross_configure_options', ['--host=@HOST@'])
+ configure_options = extract_as_list(kwargs, 'configure_options')
+ cross_configure_options = extract_as_list(kwargs, 'cross_configure_options')
+ if not cross_configure_options:
+ cross_configure_options = ['--host=@HOST@']
verbose = kwargs.get('verbose', False)
env = self.interpreter.unpack_env_kwarg(kwargs)
project = ExternalProject(self.interpreter,