build.plat: accept lists as build option overrides.

This was unintentionally removed in 9eb208c3.

Fixes #727.
This commit is contained in:
Catherine 2023-02-28 13:40:59 +00:00
parent 0b7adcbd10
commit 9ec7f5b507

View file

@ -1,4 +1,5 @@
from collections import OrderedDict from collections import OrderedDict
from collections.abc import Iterable
from abc import ABCMeta, abstractmethod, abstractproperty from abc import ABCMeta, abstractmethod, abstractproperty
import os import os
import textwrap import textwrap
@ -331,10 +332,12 @@ class TemplatedPlatform(Platform):
var_env_value = os.environ[var_env] var_env_value = os.environ[var_env]
return re.sub(r'^\"\"$', "", var_env_value) return re.sub(r'^\"\"$', "", var_env_value)
elif var in kwargs: elif var in kwargs:
if not isinstance(kwargs[var], expected_type) and not expected_type is None: kwarg = kwargs[var]
raise TypeError("Override '{}' must be a {}, not {!r}".format(var, expected_type.__name__, kwargs[var])) if issubclass(expected_type, str) and isinstance(var, Iterable):
else: kwarg = " ".join(kwarg)
return kwargs[var] if not isinstance(kwarg, expected_type) and not expected_type is None:
raise TypeError("Override '{}' must be a {}, not {!r}".format(var, expected_type.__name__, kwarg))
return kwarg
else: else:
return jinja2.Undefined(name=var) return jinja2.Undefined(name=var)