diff options
| author | sneurlax <sneurlax@gmail.com> | 2024-10-10 21:30:28 -0500 |
|---|---|---|
| committer | sneurlax <sneurlax@gmail.com> | 2024-10-10 21:30:28 -0500 |
| commit | 3ceeecc3bc0213622efa7b6135f442ff2da14286 (patch) | |
| tree | 2c66e2db46dbe4069e21a2fb74c51d834c9230f2 /impls/monero.rs/build.rs | |
| parent | c2c2f2c00dba3b7253627ddfaec37b2d015ba36b (diff) | |
/monero_rust -> /monero.rs
just to match the style in impls
and sneurlax/monero_c -> MrCyjaneK/monero_c
Diffstat (limited to 'impls/monero.rs/build.rs')
| -rw-r--r-- | impls/monero.rs/build.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/impls/monero.rs/build.rs b/impls/monero.rs/build.rs new file mode 100644 index 0000000..c3dd63a --- /dev/null +++ b/impls/monero.rs/build.rs @@ -0,0 +1,30 @@ +use std::env; +use std::path::PathBuf; + +fn main() { + println!("cargo:rerun-if-changed=build.rs"); + + let lib_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("lib"); + let monero_include_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()) + .join("../../monero_libwallet2_api_c/src/main/cpp/"); + + println!("cargo:rustc-link-search=native={}", lib_dir.display()); + println!("cargo:rustc-link-lib=dylib=wallet2_api_c"); + println!("cargo:rustc-link-lib=dylib=stdc++"); + println!("cargo:rustc-link-lib=dylib=hidapi-hidraw"); + + println!("cargo:rustc-link-arg-bin=monero_rust=-Wl,-rpath,$ORIGIN/../../lib"); + + // Generate Rust bindings. + let bindings = bindgen::Builder::default() + .header("../../monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h") + .clang_arg(format!("-I{}", monero_include_dir.display())) + .generate() + .expect("Unable to generate bindings"); + let out_path = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()) + .join("src") + .join("bindings.rs"); + bindings + .write_to_file(&out_path) + .expect("Couldn't write bindings!"); +} |
