diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-03-11 09:08:53 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2021-03-16 18:17:58 -0400 |
commit | 6415453f17f85e16d1d2ca3553325b769d0f124d (patch) | |
tree | 015a859fdd05f888ea75b906d88d2b31dd182155 | |
parent | a0689647a9b09544e0ce2b2d3d7e7a4f07f7f2bd (diff) | |
download | meson-6415453f17f85e16d1d2ca3553325b769d0f124d.zip meson-6415453f17f85e16d1d2ca3553325b769d0f124d.tar.gz meson-6415453f17f85e16d1d2ca3553325b769d0f124d.tar.bz2 |
externalproject: Flatten configure_options kwarg
-rw-r--r-- | mesonbuild/modules/unstable_external_project.py | 19 |
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, |