diff --git a/bdk-kotlin/aar/build.gradle b/bdk-kotlin/android/build.gradle similarity index 98% rename from bdk-kotlin/aar/build.gradle rename to bdk-kotlin/android/build.gradle index 6116737..2001232 100644 --- a/bdk-kotlin/aar/build.gradle +++ b/bdk-kotlin/android/build.gradle @@ -60,7 +60,7 @@ afterEvaluate { } dependencies { - implementation (project(':jar')) { + implementation (project(':jvm')) { exclude group: 'net.java.dev.jna', module: 'jna' } diff --git a/bdk-kotlin/aar/consumer-rules.pro b/bdk-kotlin/android/consumer-rules.pro similarity index 100% rename from bdk-kotlin/aar/consumer-rules.pro rename to bdk-kotlin/android/consumer-rules.pro diff --git a/bdk-kotlin/aar/proguard-rules.pro b/bdk-kotlin/android/proguard-rules.pro similarity index 100% rename from bdk-kotlin/aar/proguard-rules.pro rename to bdk-kotlin/android/proguard-rules.pro diff --git a/bdk-kotlin/aar/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt b/bdk-kotlin/android/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt similarity index 100% rename from bdk-kotlin/aar/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt rename to bdk-kotlin/android/src/androidTest/java/org/bitcoindevkit/bdk/AndroidLibTest.kt diff --git a/bdk-kotlin/aar/src/main/AndroidManifest.xml b/bdk-kotlin/android/src/main/AndroidManifest.xml similarity index 100% rename from bdk-kotlin/aar/src/main/AndroidManifest.xml rename to bdk-kotlin/android/src/main/AndroidManifest.xml diff --git a/bdk-kotlin/jar/build.gradle b/bdk-kotlin/jvm/build.gradle similarity index 100% rename from bdk-kotlin/jar/build.gradle rename to bdk-kotlin/jvm/build.gradle diff --git a/bdk-kotlin/jar/src/main/java/org/bitcoindevkit/bdk/Lib.kt b/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/Lib.kt similarity index 100% rename from bdk-kotlin/jar/src/main/java/org/bitcoindevkit/bdk/Lib.kt rename to bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/Lib.kt diff --git a/bdk-kotlin/jar/src/test/java/org/bitcoindevkit/bdk/LibTest.kt b/bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/LibTest.kt similarity index 100% rename from bdk-kotlin/jar/src/test/java/org/bitcoindevkit/bdk/LibTest.kt rename to bdk-kotlin/jvm/src/test/java/org/bitcoindevkit/bdk/LibTest.kt diff --git a/bdk-kotlin/settings.gradle b/bdk-kotlin/settings.gradle index 17a73f5..dbc97eb 100644 --- a/bdk-kotlin/settings.gradle +++ b/bdk-kotlin/settings.gradle @@ -1,3 +1,3 @@ rootProject.name = 'bdk-kotlin' -include ':jar',':aar' \ No newline at end of file +include ':jvm',':android' \ No newline at end of file diff --git a/build.sh b/build.sh index b8b5c01..831687a 100755 --- a/build.sh +++ b/build.sh @@ -10,43 +10,43 @@ export LD_LIBRARY_PATH=`pwd`/target/debug cc cc/bdk_ffi_test.c -o cc/bdk_ffi_test -L target/debug -l bdk_ffi -l pthread -l dl -l m # bdk-kotlin jar -mkdir -p bdk-kotlin/jar/libs/x86_64_linux -cp target/debug/libbdk_ffi.so bdk-kotlin/jar/libs/x86_64_linux +mkdir -p bdk-kotlin/jvm/libs/x86_64_linux +cp target/debug/libbdk_ffi.so bdk-kotlin/jvm/libs/x86_64_linux -(cd bdk-kotlin && gradle :jar:build) +(cd bdk-kotlin && gradle :jvm:build) -## rust android -# -## If ANDROID_NDK_HOME is not set then set it to github actions default -#[ -z "$ANDROID_NDK_HOME" ] && export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle -# -## Update this line accordingly if you are not building *from* darwin-x86_64 or linux-x86_64 -#export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/`uname | tr '[:upper:]' '[:lower:]'`-x86_64/bin -# -## Required for 'ring' dependency to cross-compile to Android platform, must be at least 21 -#export CFLAGS="-D__ANDROID_API__=21" -# -## IMPORTANT: make sure every target is not a substring of a different one. We check for them with grep later on -#BUILD_TARGETS="${BUILD_TARGETS:-aarch64,armv7,x86_64,i686}" -# -#mkdir -p bdk-kotlin/aar/src/main/jniLibs/ bdk-kotlin/aar/src/main/jniLibs/arm64-v8a bdk-kotlin/aar/src/main/jniLibs/x86_64 bdk-kotlin/aar/src/main/jniLibs/armeabi-v7a bdk-kotlin/aar/src/main/jniLibs/x86 -# -#if echo $BUILD_TARGETS | grep "aarch64"; then -# CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android21-clang" CC="aarch64-linux-android21-clang" cargo build --target=aarch64-linux-android -# cp target/aarch64-linux-android/debug/libbdk_ffi.so bdk-kotlin/aar/src/main/jniLibs/arm64-v8a -#fi -#if echo $BUILD_TARGETS | grep "x86_64"; then -# CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android21-clang" CC="x86_64-linux-android21-clang" cargo build --target=x86_64-linux-android -# cp target/x86_64-linux-android/debug/libbdk_ffi.so bdk-kotlin/aar/src/main/jniLibs/x86_64 -#fi -#if echo $BUILD_TARGETS | grep "armv7"; then -# CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi21-clang" CC="armv7a-linux-androideabi21-clang" cargo build --target=armv7-linux-androideabi -# cp target/armv7-linux-androideabi/debug/libbdk_ffi.so bdk-kotlin/aar/src/main/jniLibs/armeabi-v7a -#fi -#if echo $BUILD_TARGETS | grep "i686"; then -# CARGO_TARGET_I686_LINUX_ANDROID_LINKER="i686-linux-android21-clang" CC="i686-linux-android21-clang" cargo build --target=i686-linux-android -# cp target/i686-linux-android/debug/libbdk_ffi.so bdk-kotlin/aar/src/main/jniLibs/x86 -#fi -# -## bdk-kotlin aar -#(cd bdk-kotlin && gradle :aar:build) +# rust android + +# If ANDROID_NDK_HOME is not set then set it to github actions default +[ -z "$ANDROID_NDK_HOME" ] && export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle + +# Update this line accordingly if you are not building *from* darwin-x86_64 or linux-x86_64 +export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/`uname | tr '[:upper:]' '[:lower:]'`-x86_64/bin + +# Required for 'ring' dependency to cross-compile to Android platform, must be at least 21 +export CFLAGS="-D__ANDROID_API__=21" + +# IMPORTANT: make sure every target is not a substring of a different one. We check for them with grep later on +BUILD_TARGETS="${BUILD_TARGETS:-aarch64,armv7,x86_64,i686}" + +mkdir -p bdk-kotlin/android/src/main/jniLibs/ bdk-kotlin/android/src/main/jniLibs/arm64-v8a bdk-kotlin/android/src/main/jniLibs/x86_64 bdk-kotlin/android/src/main/jniLibs/armeabi-v7a bdk-kotlin/android/src/main/jniLibs/x86 + +if echo $BUILD_TARGETS | grep "aarch64"; then + CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android21-clang" CC="aarch64-linux-android21-clang" cargo build --target=aarch64-linux-android + cp target/aarch64-linux-android/debug/libbdk_ffi.so bdk-kotlin/android/src/main/jniLibs/arm64-v8a +fi +if echo $BUILD_TARGETS | grep "x86_64"; then + CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android21-clang" CC="x86_64-linux-android21-clang" cargo build --target=x86_64-linux-android + cp target/x86_64-linux-android/debug/libbdk_ffi.so bdk-kotlin/android/src/main/jniLibs/x86_64 +fi +if echo $BUILD_TARGETS | grep "armv7"; then + CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi21-clang" CC="armv7a-linux-androideabi21-clang" cargo build --target=armv7-linux-androideabi + cp target/armv7-linux-androideabi/debug/libbdk_ffi.so bdk-kotlin/android/src/main/jniLibs/armeabi-v7a +fi +if echo $BUILD_TARGETS | grep "i686"; then + CARGO_TARGET_I686_LINUX_ANDROID_LINKER="i686-linux-android21-clang" CC="i686-linux-android21-clang" cargo build --target=i686-linux-android + cp target/i686-linux-android/debug/libbdk_ffi.so bdk-kotlin/android/src/main/jniLibs/x86 +fi + +# bdk-kotlin aar +(cd bdk-kotlin && gradle :android:build) diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..52889ad --- /dev/null +++ b/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Sun Jun 20 18:41:16 PDT 2021 +sdk.dir=/home/steve/Android/Sdk diff --git a/test.sh b/test.sh index 145cdca..e44aad0 100755 --- a/test.sh +++ b/test.sh @@ -11,4 +11,4 @@ cc/bdk_ffi_test # bdk-kotlin (cd bdk-kotlin && gradle test) -#(cd bdk-kotlin && gradle :aar:connectedDebugAndroidTest) +#(cd bdk-kotlin && gradle :android:connectedDebugAndroidTest)