sed -i 's/typedef LDKnative.*Import.*LDKnative.*;//g' include/lightning.h
fi
+# stdlib.h doesn't exist in clang's wasm sysroot, and cbindgen
+# doesn't actually use it anyway, so drop the import.
+sed -i 's/#include <stdlib.h>//g' include/lightning.h
+
# Finally, sanity-check the generated C and C++ bindings with demo apps:
# Naively run the C demo app:
echo "WARNING: Can't use address sanitizer on non-Linux, non-OSX non-x86 platforms"
fi
+cargo rustc -v --target=wasm32-unknown-unknown -- -C embed-bitcode=yes || echo "WARNING: Failed to generate WASM LLVM-bitcode-embedded library"
+CARGO_PROFILE_RELEASE_LTO=true cargo rustc -v --release --target=wasm32-unknown-unknown -- -C opt-level=s -C linker-plugin-lto -C lto || echo "WARNING: Failed to generate WASM LLVM-bitcode-embedded optimized library"
+
# Now build with LTO on on both C++ and rust, but without cross-language LTO:
CARGO_PROFILE_RELEASE_LTO=true cargo rustc -v --release -- -C lto
clang++ $CLANGOPTS -std=c++11 -flto -O2 demo.cpp target/release/libldk.a -ldl
bitcoin = "0.24"
lightning = { version = "0.0.12", path = "../lightning" }
+# Always force panic=abort, further options are set in the genbindings.sh build script
+[profile.dev]
+panic = "abort"
+
+[profile.release]
+panic = "abort"
+
# We eventually want to join the root workspace, but for now, the bindings generation is
# a bit brittle and we don't want to hold up other developers from making changes just
# because they break the bindings