@@ -117,7 +117,7 @@ def architectures(self) -> set[Architecture]:
117117 return self .globals .architectures
118118
119119
120- Setting = Union [Mapping [str , str ], Sequence [str ], str , int ]
120+ Setting = Union [Mapping [str , str ], Sequence [str ], str , int , bool ]
121121
122122
123123@dataclasses .dataclass (frozen = True )
@@ -196,7 +196,7 @@ def _resolve_cascade(
196196 if value is None :
197197 continue
198198
199- if ignore_empty and not value :
199+ if ignore_empty and not value and value is not False :
200200 continue
201201
202202 value_string = _stringify_setting (value , list_sep , table_format )
@@ -258,7 +258,7 @@ def _stringify_setting(
258258 raise ConfigOptionError (msg )
259259 return list_sep .join (setting )
260260
261- if isinstance (setting , int ):
261+ if isinstance (setting , ( bool , int ) ):
262262 return str (setting )
263263
264264 return setting
@@ -516,6 +516,10 @@ def globals(self) -> GlobalOptions:
516516 skip_config = self .reader .get ("skip" , env_plat = False , list_sep = " " )
517517 test_skip = self .reader .get ("test-skip" , env_plat = False , list_sep = " " )
518518
519+ free_threaded_support = strtobool (
520+ self .reader .get ("free-threaded-support" , env_plat = False , ignore_empty = True )
521+ )
522+
519523 prerelease_pythons = args .prerelease_pythons or strtobool (
520524 self .env .get ("CIBW_PRERELEASE_PYTHONS" , "0" )
521525 )
@@ -536,12 +540,14 @@ def globals(self) -> GlobalOptions:
536540 skip_config = ""
537541 architectures = Architecture .all_archs (self .platform )
538542 prerelease_pythons = True
543+ free_threaded_support = True
539544
540545 build_selector = BuildSelector (
541546 build_config = build_config ,
542547 skip_config = skip_config ,
543548 requires_python = requires_python ,
544549 prerelease_pythons = prerelease_pythons ,
550+ free_threaded_support = free_threaded_support ,
545551 )
546552 test_selector = TestSelector (skip_config = test_skip )
547553
0 commit comments