function add_crate() {
pushd "$LIGHTNING_PATH/$1"
- RUSTC_BOOTSTRAP=1 cargo rustc --profile=check --no-default-features $3 -- --cfg=c_bindings -Zunpretty=expanded > /tmp/$1-crate-source.txt
+ RUSTC_BOOTSTRAP=1 cargo rustc --profile=check -Z avoid-dev-deps --no-default-features $3 -- --cfg=c_bindings -Zunpretty=expanded > /tmp/$1-crate-source.txt
popd
if [ "$HOST_OSX" = "true" ]; then
sed -i".original" "1i\\
add_crate "lightning-persister" "lightning_persister"
add_crate "lightning-background-processor" "lightning_background_processor" --features=std
add_crate "lightning-invoice" "lightning_invoice" --features=std
- add_crate "lightning-rapid-gossip-sync" "lightning_rapid_gossip_sync"
+ add_crate "lightning-rapid-gossip-sync" "lightning_rapid_gossip_sync" --features=std
CARGO_BUILD_ARGS="--features=std"
else
add_crate lightning lightning --features=no-std
drop_crate "lightning-persister"
- add_crate "lightning-background-processor" "lightning_background_processor"
+ add_crate "lightning-background-processor" "lightning_background_processor" --features=no-std
add_crate "lightning-rapid-gossip-sync" "lightning_rapid_gossip_sync" --features=no-std
add_crate "lightning-invoice" "lightning_invoice" --features=no-std
CARGO_BUILD_ARGS="--features=no-std"
if is_gnu_sed; then
sed -i 's/typedef LDKnative.*Import.*LDKnative.*;//g' include/lightning.h
+ # UnsafeCell is `repr(transparent)` so should be ignored here
+ sed -i 's/LDKUnsafeCell<\(.*\)> /struct \1 /g' include/lightning.h
+
# 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>/#include "ldk_rust_types.h"/g' include/lightning.h
# OSX sed is for some reason not compatible with GNU sed
sed -i '' 's/typedef LDKnative.*Import.*LDKnative.*;//g' include/lightning.h
+ # UnsafeCell is `repr(transparent)` so should be ignored by cbindgen
+ sed -i '' 's/LDKUnsafeCell<\(.*\)> /struct \1 /g' include/lightning.h
+
# 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>/#include "ldk_rust_types.h"/g' include/lightning.h