pyo3-build-config: rebuild when PYO3_ENVIRONMENT_SIGNATURE value changed

This commit is contained in:
messense 2022-11-09 15:50:11 +08:00
parent 4b7e0ee5b4
commit dee791de90
No known key found for this signature in database
GPG key ID: BB41A8A2C716CCA9
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() {