Merge pull request #2727 from messense/pyo3-rebuild

`pyo3-build-config`: rebuild when `PYO3_ENVIRONMENT_SIGNATURE` value changed
This commit is contained in:
messense 2022-11-10 18:06:57 +08:00 committed by GitHub
commit 0ef3fcbf4b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 0 deletions

View file

@ -45,6 +45,8 @@ Caused by:
suppress_build_script_link_lines=false
```
The `PYO3_ENVIRONMENT_SIGNATURE` environment variable can be used to trigger rebuilds when its value changes, it has no other effect.
### Advanced: config files
If you save the above output config from `PYO3_PRINT_CONFIG` to a file, it is possible to manually override the contents and feed it back into PyO3 using the `PYO3_CONFIG_FILE` env var.

View file

@ -0,0 +1 @@
`pyo3-build-config`: rebuild when `PYO3_ENVIRONMENT_SIGNATURE` environment variable value changed

View file

@ -1684,6 +1684,10 @@ fn get_env_interpreter() -> Option<PathBuf> {
/// 3. `python`, if this is functional a Python 3.x interpreter
/// 4. `python3`, as above
pub fn find_interpreter() -> Result<PathBuf> {
// Trigger rebuilds when `PYO3_ENVIRONMENT_SIGNATURE` env var value changes
// See https://github.com/PyO3/pyo3/issues/2724
println!("cargo:rerun-if-env-changed=PYO3_ENVIRONMENT_SIGNATURE");
if let Some(exe) = env_var("PYO3_PYTHON") {
Ok(exe.into())
} else if let Some(env_interpreter) = get_env_interpreter() {