Files
poulpy/base2k/build.rs
2025-01-30 17:34:57 +01:00

62 lines
1.9 KiB
Rust

//use bindgen;
//use std::env;
//use std::fs;
use std::path::absolute;
//use std::path::PathBuf;
//use std::time::SystemTime;
fn main() {
/*
[build-dependencies]
bindgen ="0.71.1"
// Path to the C header file
let header_paths: [&str; 2] = [
"spqlios-arithmetic/spqlios/coeffs/coeffs_arithmetic.h",
"spqlios-arithmetic/spqlios/arithmetic/vec_znx_arithmetic.h",
];
let out_path: PathBuf = PathBuf::from(env::var("OUT_DIR").unwrap());
let bindings_file = out_path.join("bindings.rs");
let regenerate: bool = header_paths.iter().any(|header| {
let header_metadata: SystemTime = fs::metadata(header)
.and_then(|m| m.modified())
.unwrap_or(SystemTime::UNIX_EPOCH);
let bindings_metadata: SystemTime = fs::metadata(&bindings_file)
.and_then(|m| m.modified())
.unwrap_or(SystemTime::UNIX_EPOCH);
header_metadata > bindings_metadata
});
if regenerate {
// Generate the Rust bindings
let mut builder: bindgen::Builder = bindgen::Builder::default();
for header in header_paths {
builder = builder.header(header);
}
let bindings = builder
.generate_comments(false) // Optional: includes comments in bindings
.generate_inline_functions(true) // Optional: includes inline functions
.generate()
.expect("Unable to generate bindings");
// Write the bindings to the OUT_DIR
bindings
.write_to_file(&bindings_file)
.expect("Couldn't write bindings!");
}
*/
println!(
"cargo:rustc-link-search=native={}",
absolute("./spqlios-arithmetic/build/spqlios")
.unwrap()
.to_str()
.unwrap()
);
println!("cargo:rustc-link-lib=static=spqlios"); //"cargo:rustc-link-lib=dylib=spqlios"
}