From: Matt Corallo Date: Fri, 19 Feb 2021 22:56:15 +0000 (-0500) Subject: Add simple README about our C bindings generation stuff X-Git-Tag: v0.0.13~17^2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=rust-lightning;a=commitdiff_plain;h=ee9ceb42b1cbc688e506ed4a5923060dab9713a6 Add simple README about our C bindings generation stuff --- diff --git a/c-bindings-gen/README.md b/c-bindings-gen/README.md new file mode 100644 index 00000000..8377adc4 --- /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.