extern crate pkg_config;
extern crate cmake;
use std::env;
use cmake::Config;
fn main() {
let target = env::var("TARGET").expect("TARGET was not set");
if pkg_config::find_library("uchardet").is_ok() { return; }
let mut config = Config::new("uchardet");
config.define("BUILD_BINARY", "OFF");
config.define("BUILD_STATIC", "ON");
config.define("BUILD_SHARED_LIBS", "OFF");
if target.contains("windows-gnu") {
config.cxxflag("-fno-sized-deallocation");
}
if target.contains("windows-gnu") {
env::set_var("CARGO_MAKEFLAGS", "");
}
let dst = config.build();
println!("cargo:rustc-link-search=native={}/lib", dst.display());
println!("cargo:rustc-link-search=native={}/lib64", dst.display());
println!("cargo:rustc-link-lib=static=uchardet");
if !target.contains("windows-msvc") {
let cxx_abi = "stdc++";
println!("cargo:rustc-flags=-l {}", cxx_abi);
}
if target.contains("windows-gnu") {
println!("cargo:rustc-link-lib=dylib=gcc_eh");
println!("cargo:rustc-link-lib=dylib=pthread");
}
}