2021-08-04 11:54:45 +00:00
|
|
|
// Import some modules from this crate inline to generate the build config.
|
|
|
|
// Allow dead code because not all code in the modules is used in this build script.
|
|
|
|
|
|
|
|
#[path = "src/impl_.rs"]
|
|
|
|
#[allow(dead_code)]
|
|
|
|
mod impl_;
|
|
|
|
|
|
|
|
#[path = "src/errors.rs"]
|
|
|
|
#[allow(dead_code)]
|
|
|
|
mod errors;
|
|
|
|
|
|
|
|
use std::{env, path::Path};
|
|
|
|
|
|
|
|
use errors::{Result, Context};
|
|
|
|
|
|
|
|
fn generate_build_config() -> Result<()> {
|
|
|
|
// Create new interpreter config and write it to the default location
|
|
|
|
let interpreter_config = impl_::make_interpreter_config()?;
|
|
|
|
|
|
|
|
let path = Path::new(&env::var_os("OUT_DIR").unwrap()).join("pyo3-build-config.txt");
|
|
|
|
interpreter_config
|
|
|
|
.to_writer(&mut std::fs::File::create(&path).with_context(|| {
|
|
|
|
format!("failed to create config file at {}", path.display())
|
|
|
|
})?)
|
|
|
|
}
|
|
|
|
|
2021-05-19 20:50:25 +00:00
|
|
|
fn main() {
|
2021-08-04 11:54:45 +00:00
|
|
|
if let Err(e) = generate_build_config() {
|
|
|
|
eprintln!("error: {}", e.report());
|
|
|
|
std::process::exit(1)
|
|
|
|
}
|
2021-05-19 20:50:25 +00:00
|
|
|
}
|