use std::{env, path::Path};
fn main() {
let out_dir = env::var("OUT_DIR").unwrap();
if cfg!(debug_assertions) {
cgo_oligami::Build::new()
.build_mode(cgo_oligami::BuildMode::CArchive)
.change_dir("./golib")
.out_dir(&Path::new(&out_dir))
.package("main.go")
.build("nosql_db_sdk_ffi");
} else {
cgo_oligami::Build::new()
.build_mode(cgo_oligami::BuildMode::CArchive)
.ldflags("-s -w")
.trimpath(true)
.change_dir("./golib")
.out_dir(&Path::new(&out_dir))
.package("main.go")
.build("nosql_db_sdk_ffi_release");
};
println!("cargo:rerun-if-changed=golib/main.go");
let mut lib = if cfg!(debug_assertions) {
"nosql_db_sdk_ffi"
} else {
"nosql_db_sdk_ffi_release"
}
.to_string();
if std::env::consts::OS == "windows" {
lib = format!("lib{lib}");
}
println!("cargo:rustc-link-search=native={}", out_dir);
println!("cargo:rustc-link-lib=static={}", lib);
}