You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.0 KiB
28 lines
1.0 KiB
use pkg_config::Config;
|
|
|
|
fn main() {
|
|
let target_dir = std::env::var_os("CARGO_TARGET_DIR").unwrap();
|
|
|
|
// The main linking point with c++ code is the libbluetooth-static.a
|
|
// These includes all the symbols built via C++ but doesn't include other
|
|
// links (i.e. pkg-config)
|
|
println!("cargo:rustc-link-lib=static=bluetooth-static");
|
|
println!("cargo:rustc-link-search=native={}", target_dir.into_string().unwrap());
|
|
|
|
// A few dynamic links
|
|
println!("cargo:rustc-link-lib=dylib=flatbuffers");
|
|
println!("cargo:rustc-link-lib=dylib=protobuf");
|
|
println!("cargo:rustc-link-lib=dylib=resolv");
|
|
|
|
// Clang requires -lc++ instead of -lstdc++
|
|
println!("cargo:rustc-link-lib=c++");
|
|
|
|
// A few more dependencies from pkg-config. These aren't included as part of
|
|
// the libbluetooth-static.a
|
|
Config::new().probe("libchrome").unwrap();
|
|
Config::new().probe("libmodp_b64").unwrap();
|
|
Config::new().probe("tinyxml2").unwrap();
|
|
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
}
|