summaryrefslogtreecommitdiff
path: root/impls/monero_rust/build.rs
diff options
context:
space:
mode:
authorsneurlax <sneurlax@gmail.com>2024-10-10 17:44:10 -0500
committersneurlax <sneurlax@gmail.com>2024-10-10 17:44:10 -0500
commita42cbbe83120bd4724a050e03fb95802a4a5ff42 (patch)
tree34b69abe03eea0baa42bdb30aadf301c5228fa9f /impls/monero_rust/build.rs
parent440f6c31c764296f5b6856dcd8ba759cfd17d1a0 (diff)
prove integration
Diffstat (limited to 'impls/monero_rust/build.rs')
-rw-r--r--impls/monero_rust/build.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/impls/monero_rust/build.rs b/impls/monero_rust/build.rs
index 47c41a6..c3dd63a 100644
--- a/impls/monero_rust/build.rs
+++ b/impls/monero_rust/build.rs
@@ -5,6 +5,8 @@ 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");
@@ -12,4 +14,17 @@ fn main() {
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!");
}