From ee9ceb42b1cbc688e506ed4a5923060dab9713a6 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 19 Feb 2021 17:56:15 -0500 Subject: [PATCH] Add simple README about our C bindings generation stuff --- c-bindings-gen/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 c-bindings-gen/README.md diff --git a/c-bindings-gen/README.md b/c-bindings-gen/README.md new file mode 100644 index 000000000..8377adc4b --- /dev/null +++ b/c-bindings-gen/README.md @@ -0,0 +1,14 @@ +LDK C Bindings Generator +======================== + +This program parses a Rust crate's AST from a single lib.rs passed in on stdin and generates a +second crate which is C-callable (and carries appropriate annotations for cbindgen). It is usually +invoked via the `genbindings.sh` script in the top-level directory, which converts the lightning +crate into a single file with a call to +`RUSTC_BOOTSTRAP=1 cargo rustc --profile=check -- -Zunstable-options --pretty=expanded`. + +`genbindings.sh` requires that you have a rustc installed with the `wasm32-wasi` target available +(eg via the `libstd-rust-dev-wasm32` package on Debian or `rustup target add wasm32-wasi` for those +using rustup), cbindgen installed via `cargo install cbindgen` and in your `PATH`, and `clang`, +`clang++`, `gcc`, and `g++` available in your `PATH`. It uses `valgrind` if it is available to test +the generated bindings thoroughly for memory management issues. -- 2.39.5