Update auto-generated bindings to include ln-transaction-sync
[ldk-c-bindings] / genbindings.sh
index 0e6f0f6a10fbe6d64705fe6e9996a7857bc241eb..db3e07a69374aecf9375eb704ea0dbdb7729df38 100755 (executable)
@@ -180,11 +180,13 @@ pub mod $2 {
        echo "}" >> /tmp/$1-crate-source.txt
        cat /tmp/$1-crate-source.txt >> /tmp/crate-source.txt
        rm /tmp/$1-crate-source.txt
+       FEATURES="$(echo "$3\"" | sed 's/--features=/"/' | sed 's/,/", "/g')"
+       [ "$FEATURES" = '"' ] && FEATURES=""
        if is_gnu_sed; then
-               sed -E -i 's|#*'$1' = \{ .*|'$1' = \{ path = "'"$LIGHTNING_PATH"'/'$1'", default-features = false }|' lightning-c-bindings/Cargo.toml
+               sed -E -i 's|#*'$1' = \{ .*|'$1' = \{ path = "'"$LIGHTNING_PATH"'/'$1'", default-features = false, features = ['"$FEATURES"'] }|' lightning-c-bindings/Cargo.toml
        else
                # OSX sed is for some reason not compatible with GNU sed
-               sed -E -i '' 's|#*'$1' = \{ .*|'$1' = \{ path = "'"$LIGHTNING_PATH"'/'$1'", default-features = false }|' lightning-c-bindings/Cargo.toml
+               sed -E -i '' 's|#*'$1' = \{ .*|'$1' = \{ path = "'"$LIGHTNING_PATH"'/'$1'", default-features = false, features = ['"$FEATURES"'] }|' lightning-c-bindings/Cargo.toml
        fi
 }
 
@@ -204,13 +206,14 @@ if [ "$2" = "true" ]; then
        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" --features=std
-       CARGO_BUILD_ARGS="--features=std"
+       add_crate "lightning-transaction-sync" "lightning_transaction_sync" --features=esplora-blocking,electrum
 else
        add_crate lightning lightning --features=no-std
        drop_crate "lightning-persister"
        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
+       add_crate "lightning-rapid-gossip-sync" "lightning_rapid_gossip_sync" --features=no-std
+       drop_crate "lightning-transaction-sync"
        CARGO_BUILD_ARGS="--features=no-std"
 fi
 
@@ -376,19 +379,27 @@ function REALLY_PIN_CC {
        cargo update -p cc --precise "1.0.79" --verbose
        ( RUSTC_BOOTSTRAP=1 cargo build --features=std -v --release --target x86_64-apple-darwin -Zbuild-std=std,panic_abort > /dev/null 2>&1 ) || echo -n
        ( RUSTC_BOOTSTRAP=1 cargo build --features=std -v --release --target aarch64-apple-darwin -Zbuild-std=std,panic_abort > /dev/null 2>&1 ) || echo -n
+       pushd ../deterministic-build-wrappers/compiler-builtins-dummy
+       cargo build > /dev/null 2>&1 || echo -n
+       popd
        # Sadly, std also depends on cc, and we can't pin it in that tree
        # directly. Instead, we have to delete the file out of the cargo
        # registry and build --offline to avoid it using the latest version.
        NEW_CC_DEP="$CARGO_HOME"
        [ "$NEW_CC_DEP" = "" ] && NEW_CC_DEP="$HOME"
-       [ -d "$NEW_CC_DEP/.cargo/registry/cache/"github.com-* ] && CARGO_REGISTRY_CACHE="$NEW_CC_DEP/.cargo/registry/cache/"github.com-*
-       [ -d "$NEW_CC_DEP/.cargo/registry/cache/"index.crates.io-* ] && CARGO_REGISTRY_CACHE="$NEW_CC_DEP/.cargo/registry/cache/"index.crates.io-*
+       [ -d "$NEW_CC_DEP/.cargo/registry/cache/"github.com-* ] && CARGO_REGISTRY_CACHE="$(echo "$NEW_CC_DEP/.cargo/registry/cache/"github.com-*)"
+       [ -d "$NEW_CC_DEP/.cargo/registry/cache/"index.crates.io-* ] && CARGO_REGISTRY_CACHE="$(echo "$NEW_CC_DEP/.cargo/registry/cache/"index.crates.io-*)"
        if [ -d "$CARGO_REGISTRY_CACHE" ]; then
+               if [ -f "$CARGO_REGISTRY_CACHE/compiler_builtins-0.1.109.crate" ]; then
+                       mv "$CARGO_REGISTRY_CACHE/compiler_builtins-0.1.109.crate" ./
+               fi
                if [ -f "$CARGO_REGISTRY_CACHE/cc-1.0.79.crate" ]; then
                        mv "$CARGO_REGISTRY_CACHE/cc-1.0.79.crate" ./
                fi
-               rm -f "$CARGO_REGISTRY_CACHE/"*/cc-*.crate
+               rm -f "$CARGO_REGISTRY_CACHE/"cc-*.crate
                [ -f ./cc-1.0.79.crate ] && mv ./cc-1.0.79.crate "$CARGO_REGISTRY_CACHE/"
+               rm -f "$CARGO_REGISTRY_CACHE/"compiler_builtins-0.1.11*.crate
+               [ -f ./compiler_builtins-0.1.109.crate ] && mv ./compiler_builtins-0.1.109.crate "$CARGO_REGISTRY_CACHE/"
        else
                echo "Couldn't find cargo cache, build-std builds are likely to fail!"
        fi