Skip to content

Commit 9f961de

Browse files
committed
Fix dll detection
1 parent 41bab7a commit 9f961de

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

bin/cibw_before_build_windows_arm64.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,24 @@ def _normalize_path(path: Path | str) -> str:
1212
return str(path).replace('\\', '/')
1313

1414

15+
def _default_dll_name() -> str:
16+
vernum = sysconfig.get_config_var('py_version_nodot')
17+
if not vernum:
18+
vernum = f"{sys.version_info.major}{sys.version_info.minor}"
19+
is_freethreaded = bool(sysconfig.get_config_var('Py_GIL_DISABLED'))
20+
if not is_freethreaded:
21+
abiflags = sysconfig.get_config_var('ABIFLAGS') or getattr(sys, 'abiflags', '') or ''
22+
is_freethreaded = 't' in abiflags
23+
suffix = 't' if is_freethreaded else ''
24+
return f'python{vernum}{suffix}.dll'
25+
26+
1527
def _normalize_dll_name(name: str) -> str:
1628
if name.endswith('.dll'):
1729
return name
1830
if name.startswith('lib') and name.endswith('.dll.a'):
19-
return name[3:-2]
20-
raise SystemExit(f'Unexpected Python library name: {name}')
31+
return _default_dll_name()
32+
return _default_dll_name()
2133

2234

2335
def _find_dll(dll_name: str) -> Path:
@@ -47,9 +59,7 @@ def main() -> None:
4759
lib_dir.mkdir(parents=True, exist_ok=True)
4860
pkgconfig_dir.mkdir(parents=True, exist_ok=True)
4961

50-
raw_name = sysconfig.get_config_var('DLLLIBRARY') or sysconfig.get_config_var('LDLIBRARY')
51-
if not raw_name:
52-
raise SystemExit('Could not determine Python DLL name')
62+
raw_name = sysconfig.get_config_var('DLLLIBRARY') or sysconfig.get_config_var('LDLIBRARY') or ''
5363
dll_name = _normalize_dll_name(raw_name)
5464
include_dir = sysconfig.get_config_var('INCLUDEPY')
5565
if not include_dir:

0 commit comments

Comments
 (0)