use std::env;
use std::error::Error;
use std::path::PathBuf;
fn main() -> Result<(), Box<dyn Error>> {
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=src/api/api.h");
println!("cargo:rerun-if-changed=src/api/mod.rs");
println!("cargo:rerun-if-changed=src/api/rules/aliases.h");
println!("cargo:rerun-if-changed=src/api/rules/rules.h");
println!("cargo:rerun-if-changed=src/api/rules/mod.rs");
println!("cargo:rerun-if-changed=src/lib.rs");
println!("cargo:rerun-if-changed=src/math/math.h");
println!("cargo:rerun-if-changed=src/math/mod.rs");
println!("cargo:rerun-if-changed=src/plugin/mod.rs");
println!("cargo:rerun-if-changed=src/plugin/plugin.h");
println!("cargo:rerun-if-changed=src/utility/mod.rs");
println!("cargo:rerun-if-changed=src/utility/utility.h");
let maliput_bin_path =
PathBuf::from(env::var("DEP_MALIPUT_SDK_MALIPUT_BIN_PATH").expect("DEP_MALIPUT_SDK_MALIPUT_BIN_PATH not set"));
println!("cargo:rustc-link-search=native={}", maliput_bin_path.display());
println!("cargo:rustc-link-lib=math");
println!("cargo:rustc-link-lib=common");
println!("cargo:rustc-link-lib=drake");
println!("cargo:rustc-link-lib=geometry_base");
println!("cargo:rustc-link-lib=plugin");
println!("cargo:rustc-link-lib=utility");
println!("cargo:rustc-link-lib=base");
println!("cargo:rustc-link-lib=api");
cxx_build::bridges([
"src/math/mod.rs",
"src/utility/mod.rs",
"src/api/rules/mod.rs",
"src/api/mod.rs",
"src/plugin/mod.rs",
])
.flag_if_supported("-std=c++17")
.include("src")
.compile("maliput-sys");
let maliput_malidrive_plugin_path = PathBuf::from(
env::var("DEP_MALIPUT_SDK_MALIPUT_MALIDRIVE_PLUGIN_PATH")
.expect("DEP_MALIPUT_SDK_MALIPUT_MALIDRIVE_PLUGIN_PATH not set"),
);
println!(
"cargo:rustc-env=MALIPUT_PLUGIN_PATH={}",
maliput_malidrive_plugin_path.display()
);
Ok(())
}