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