Skip to content

Commit

Permalink
Merge #1592
Browse files Browse the repository at this point in the history
1592: Always set `PYO3_PYTHON` if interpreter is runnable regardless of abi3 r=messense a=messense

It can be useful in build scripts, like pyca/cryptography#8815 (comment)

Co-authored-by: messense <[email protected]>
  • Loading branch information
bors[bot] and messense authored May 6, 2023
2 parents ea793e8 + b4e9e2d commit 997630c
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 9 deletions.
1 change: 1 addition & 0 deletions src/build_context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ impl BridgeModel {
match self {
BridgeModel::Bin(Some((value, _))) => value == name,
BridgeModel::Bindings(value, _) => value == name,
BridgeModel::BindingsAbi3(..) => name == "pyo3" || name == "pyo3-ffi",
_ => false,
}
}
Expand Down
1 change: 1 addition & 0 deletions src/build_options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -995,6 +995,7 @@ pub fn find_bridge(cargo_metadata: &Metadata, bridge: Option<&str>) -> Result<Br

if !(bridge.is_bindings("pyo3") || bridge.is_bindings("pyo3-ffi")) {
eprintln!("🔗 Found {bridge} bindings");
return Ok(bridge);
}

for &lib in PYO3_BINDING_CRATES.iter() {
Expand Down
15 changes: 6 additions & 9 deletions src/compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -367,11 +367,11 @@ fn compile_target(
if let Some(interpreter) = python_interpreter {
// Target python interpreter isn't runnable when cross compiling
if interpreter.runnable {
if bridge_model.is_bindings("pyo3")
|| bridge_model.is_bindings("pyo3-ffi")
|| (matches!(bridge_model, BridgeModel::BindingsAbi3(_, _))
&& interpreter.interpreter_kind.is_pypy())
{
if bridge_model.is_bindings("pyo3") || bridge_model.is_bindings("pyo3-ffi") {
debug!(
"Setting PYO3_PYTHON to {}",
interpreter.executable.display()
);
build_command
.env("PYO3_PYTHON", &interpreter.executable)
.env(
Expand All @@ -382,10 +382,7 @@ fn compile_target(

// rust-cpython, and legacy pyo3 versions
build_command.env("PYTHON_SYS_EXECUTABLE", &interpreter.executable);
} else if (bridge_model.is_bindings("pyo3")
|| bridge_model.is_bindings("pyo3-ffi")
|| (matches!(bridge_model, BridgeModel::BindingsAbi3(_, _))
&& interpreter.interpreter_kind.is_pypy()))
} else if (bridge_model.is_bindings("pyo3") || bridge_model.is_bindings("pyo3-ffi"))
&& env::var_os("PYO3_CONFIG_FILE").is_none()
{
let pyo3_config = interpreter.pyo3_config_file();
Expand Down

0 comments on commit 997630c

Please sign in to comment.