oracle-nosql-db-sdk-rust 0.1.0

oracle nosql db sdk for rust
Documentation
use std::process::Command;

fn main() {
    let mut binding = Command::new("go");
    let output =
        binding.current_dir("./golib");
    let output = if cfg!(debug_assertions) {
        output.args(&[
            "build",
            "-buildmode=c-archive",
            "-o",
            "target/debug/libnosql_db_sdk_ffi.a",
            "main.go",
            // "gophernize.go",
            // "nosqldb_sdk.go",
            // "ptrproxy.go",
        ])
    } else {
        output.args(&[
            "build",
            "-buildmode=c-archive",
            "-o",
            "target/release/libnosql_db_sdk_ffi_release.a",
            "-ldflags=-s -w",
            "-trimpath",
            "main.go",
            // "gophernize.go",
            // "nosqldb_sdk.go",
            // "ptrproxy.go",
        ])
    };
    println!("{:?}", output);
    match output.output() {
        Ok(output) => {
            println!("{}", String::from_utf8_lossy(&output.stdout));
            if !output.status.success() {
                eprintln!("{}", String::from_utf8_lossy(&output.stderr));
            }
        }
        Err(e) => {
            eprintln!("Failed to execute process: {}", e);
        }
    };

    let path = if cfg!(debug_assertions) {
        "./golib/target/debug"
    } else {
        "./golib/target/release"
    };
    let lib = if cfg!(debug_assertions) {
        "nosql_db_sdk_ffi"
    } else {
        "nosql_db_sdk_ffi_release"
    };
    // Tell Cargo that if the given file changes, to rerun this build script.
    println!("cargo:rerun-if-changed=golib/main.go");
    println!("cargo:rerun-if-changed=golib/nosqldb_sdk.go");
    println!("cargo:rerun-if-changed=golib/ptrproxy.go");
    println!("cargo:rerun-if-changed=golib/gophernize.go");

    println!("cargo:rustc-link-search=native={}", path);
    println!("cargo:rustc-link-lib=static={}", lib);
}