in include/pyo3/pyo3-build-config/src/impl_.rs [2674:2763]
fn default_lib_name_unix() {
use PythonImplementation::*;
// Defaults to python3.7m for CPython 3.7
assert_eq!(
super::default_lib_name_unix(
PythonVersion { major: 3, minor: 7 },
CPython,
None,
false
)
.unwrap(),
"python3.7m",
);
// Defaults to pythonX.Y for CPython 3.8+
assert_eq!(
super::default_lib_name_unix(
PythonVersion { major: 3, minor: 8 },
CPython,
None,
false
)
.unwrap(),
"python3.8",
);
assert_eq!(
super::default_lib_name_unix(
PythonVersion { major: 3, minor: 9 },
CPython,
None,
false
)
.unwrap(),
"python3.9",
);
// Can use ldversion to override for CPython
assert_eq!(
super::default_lib_name_unix(
PythonVersion { major: 3, minor: 9 },
CPython,
Some("3.7md"),
false
)
.unwrap(),
"python3.7md",
);
// PyPy 3.9 includes ldversion
assert_eq!(
super::default_lib_name_unix(PythonVersion { major: 3, minor: 9 }, PyPy, None, false)
.unwrap(),
"pypy3.9-c",
);
assert_eq!(
super::default_lib_name_unix(
PythonVersion { major: 3, minor: 9 },
PyPy,
Some("3.9d"),
false
)
.unwrap(),
"pypy3.9d-c",
);
// free-threading adds a t suffix
assert_eq!(
super::default_lib_name_unix(
PythonVersion {
major: 3,
minor: 13
},
CPython,
None,
true
)
.unwrap(),
"python3.13t",
);
// 3.12 and older are incompatible with gil_disabled
assert!(super::default_lib_name_unix(
PythonVersion {
major: 3,
minor: 12,
},
CPython,
None,
true,
)
.is_err());
}