extern crate cc;
fn main() {
let cwd = std::env::current_dir().unwrap();
let out = std::env::var("OUT_DIR").unwrap();
let ref src = cwd.join("src");
let ref flips = cwd.join("flips");
let ref patched = std::path::PathBuf::from(out).join("flips");
std::fs::create_dir_all(patched).ok();
for name in &["libups.cpp", "libbps.cpp", "libbps-suf.cpp"] {
std::fs::copy(flips.join(name), patched.join(name)).unwrap();
}
println!("cargo:rustc-link-lib=ips");
cc::Build::new()
.cpp(true)
.include(flips)
.warnings(true)
.file(flips.join("libips.cpp"))
.compile("ips");
println!("cargo:rustc-link-lib=ups");
cc::Build::new()
.cpp(true)
.include(src)
.include(flips)
.warnings(false)
.file(patched.join("libups.cpp"))
.compile("libups.a");
println!("cargo:rustc-link-lib=bps");
cc::Build::new()
.cpp(true)
.include(src)
.include(flips)
.warnings(false)
.file(flips.join("divsufsort.c"))
.file(patched.join("libbps.cpp"))
.file(patched.join("libbps-suf.cpp"))
.compile("libbps.a");
}