Skip to content

Commit 9ec7f5b

Browse files
committed
build.plat: accept lists as build option overrides.
This was unintentionally removed in 9eb208c. Fixes #727.
1 parent 0b7adcb commit 9ec7f5b

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

amaranth/build/plat.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from collections import OrderedDict
2+
from collections.abc import Iterable
23
from abc import ABCMeta, abstractmethod, abstractproperty
34
import os
45
import textwrap
@@ -331,10 +332,12 @@ def _extract_override(var, *, expected_type):
331332
var_env_value = os.environ[var_env]
332333
return re.sub(r'^\"\"$', "", var_env_value)
333334
elif var in kwargs:
334-
if not isinstance(kwargs[var], expected_type) and not expected_type is None:
335-
raise TypeError("Override '{}' must be a {}, not {!r}".format(var, expected_type.__name__, kwargs[var]))
336-
else:
337-
return kwargs[var]
335+
kwarg = kwargs[var]
336+
if issubclass(expected_type, str) and isinstance(var, Iterable):
337+
kwarg = " ".join(kwarg)
338+
if not isinstance(kwarg, expected_type) and not expected_type is None:
339+
raise TypeError("Override '{}' must be a {}, not {!r}".format(var, expected_type.__name__, kwarg))
340+
return kwarg
338341
else:
339342
return jinja2.Undefined(name=var)
340343

0 commit comments

Comments
 (0)