#[cfg(feature = "ffi")]
use std::env;
#[allow(clippy::expect_used)]
fn main() {
if std::env::var("DOCS_RS").is_ok() {
println!("cargo:warning=Running in docs.rs environment, skipping file generation");
return;
}
println!("cargo:rerun-if-env-changed=HIGH_PRECISION");
println!("cargo:rerun-if-env-changed=CARGO_FEATURE_HIGH_PRECISION");
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=cbindgen.toml");
println!("cargo:rerun-if-changed=cbindgen_cython.toml");
println!("cargo:rerun-if-changed=Cargo.toml");
println!("cargo:rerun-if-changed=../Cargo.toml");
#[cfg(feature = "ffi")]
if env::var("CARGO_FEATURE_FFI").is_ok() {
extern crate cbindgen;
use std::path::PathBuf;
let crate_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
let config_c = cbindgen::Config::from_file("cbindgen.toml")
.expect("unable to find cbindgen.toml configuration file");
let c_header_path = crate_dir.join("../../nautilus_trader/core/includes/backtest.h");
cbindgen::generate_with_config(&crate_dir, config_c)
.expect("unable to generate bindings")
.write_to_file(c_header_path);
let config_cython = cbindgen::Config::from_file("cbindgen_cython.toml")
.expect("unable to find cbindgen_cython.toml configuration file");
let cython_path = crate_dir.join("../../nautilus_trader/core/rust/backtest.pxd");
cbindgen::generate_with_config(&crate_dir, config_cython)
.expect("unable to generate bindings")
.write_to_file(cython_path);
}
}