use std::{fs::create_dir_all, path::Path, process::Command};
fn main() {
let ev = std::env::var("OUT_DIR").unwrap();
let out_dir = Path::new(ev.as_str()).join("libs");
if !out_dir.exists() {
create_dir_all(out_dir.to_owned()).unwrap();
}
Command::new("gcc")
.args(&[
"-c",
"-fPIC",
"-lncurses",
"-static",
"-o",
&format!("{}/getinput.o", out_dir.to_str().unwrap()),
"./src/ext/get_input.c",
])
.status()
.expect("Problem compiling c program");
Command::new("ar")
.args(&["crus", "libgetinput.a", "getinput.o"])
.current_dir(out_dir.to_owned())
.status()
.expect("Problem linking c program");
println!(
"cargo:rustc-link-search=native={}",
out_dir.to_owned().to_str().unwrap()
);
println!("cargo:rustc-link-lib=static=getinput");
println!("cargo:rustc-link-lib=ncurses");
println!("cargo:rerun-if-changed=src/ext/get_input.c");
}