in include/pyo3/pyo3-build-config/src/impl_.rs [2488:2671]
fn default_lib_name_windows() {
use PythonImplementation::*;
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
false,
false,
false,
false,
)
.unwrap(),
"python39",
);
assert!(super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
false,
false,
false,
true,
)
.is_err());
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
true,
false,
false,
false,
)
.unwrap(),
"python3",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
false,
true,
false,
false,
)
.unwrap(),
"python3.9",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
true,
true,
false,
false,
)
.unwrap(),
"python3",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
PyPy,
true,
false,
false,
false,
)
.unwrap(),
"python39",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
false,
false,
true,
false,
)
.unwrap(),
"python39_d",
);
// abi3 debug builds on windows use version-specific lib on 3.9 and older
// to workaround https://github.com/python/cpython/issues/101614
assert_eq!(
super::default_lib_name_windows(
PythonVersion { major: 3, minor: 9 },
CPython,
true,
false,
true,
false,
)
.unwrap(),
"python39_d",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 10
},
CPython,
true,
false,
true,
false,
)
.unwrap(),
"python3_d",
);
// Python versions older than 3.13 don't support gil_disabled
assert!(super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 12,
},
CPython,
false,
false,
false,
true,
)
.is_err());
// mingw and free-threading are incompatible (until someone adds support)
assert!(super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 12,
},
CPython,
false,
true,
false,
true,
)
.is_err());
assert_eq!(
super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 13
},
CPython,
false,
false,
false,
true,
)
.unwrap(),
"python313t",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 13
},
CPython,
true, // abi3 true should not affect the free-threaded lib name
false,
false,
true,
)
.unwrap(),
"python313t",
);
assert_eq!(
super::default_lib_name_windows(
PythonVersion {
major: 3,
minor: 13
},
CPython,
false,
false,
true,
true,
)
.unwrap(),
"python313t_d",
);
}