diff --git a/build.gradle.kts b/build.gradle.kts index 083bc5f..e88012c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -58,6 +58,14 @@ kotlin { secp256k1CInterop("host") } + macosX64 { + secp256k1CInterop("host") + } + + macosArm64 { + secp256k1CInterop("host") + } + iosX64 { secp256k1CInterop("ios") } diff --git a/gradle.properties b/gradle.properties index 898869e..1094ecc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,6 +6,7 @@ org.gradle.parallel = true kotlin.code.style = official kotlin.native.ignoreDisabledTargets = true kotlin.mpp.enableCInteropCommonization=true +kotlin.native.cacheKind.macosArm64=none # Android android.useAndroidX = true \ No newline at end of file diff --git a/native/build.sh b/native/build.sh index 283f27b..ba3194d 100755 --- a/native/build.sh +++ b/native/build.sh @@ -23,7 +23,11 @@ else fi ./autogen.sh -./configure $CONF_OPTS --enable-experimental --enable-module_ecdh --enable-module-recovery --enable-module-schnorrsig --enable-module-musig --enable-benchmark=no --enable-shared=no --enable-exhaustive-tests=no --enable-tests=no +if [ "$TARGET" == "darwin" ]; then + CFLAGS="-arch arm64 -arch x86_64" ./configure $CONF_OPTS --enable-experimental --enable-module_ecdh --enable-module-recovery --enable-module-schnorrsig --enable-module-musig --enable-benchmark=no --enable-shared=no --enable-exhaustive-tests=no --enable-tests=no +else + ./configure $CONF_OPTS --enable-experimental --enable-module_ecdh --enable-module-recovery --enable-module-schnorrsig --enable-module-musig --enable-benchmark=no --enable-shared=no --enable-exhaustive-tests=no --enable-tests=no +fi make clean make diff --git a/publishing/secp256k1-kmp-snapshot-deploy.sh b/publishing/secp256k1-kmp-snapshot-deploy.sh index d26e942..0f3126b 100755 --- a/publishing/secp256k1-kmp-snapshot-deploy.sh +++ b/publishing/secp256k1-kmp-snapshot-deploy.sh @@ -21,45 +21,52 @@ mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/conte -Djavadoc=$ARTIFACT_ID_BASE-$VERSION-javadoc.jar popd pushd . -for i in iosarm64 iossimulatorarm64 iosx64 jni-android jni-common jni-jvm-darwin jni-jvm-extract jni-jvm-linux jni-jvm-mingw jni-jvm jvm linuxx64; do +for i in iosarm64 iossimulatorarm64 iosx64 macosarm64 macosx64 jni-android jni-common jni-jvm-darwin jni-jvm-extract jni-jvm-linux jni-jvm-mingw jni-jvm jvm linuxx64; do cd fr/acinq/secp256k1/secp256k1-kmp-$i/$VERSION - if [ $i == iosarm64 ] || [ $i == iossimulatorarm64 ] || [ $i == iosx64 ]; then - mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ - -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ - -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \ - -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION-metadata.jar,$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \ - -Dtypes=jar,module,klib \ - -Dclassifiers=metadata,,cinterop-libsecp256k1 \ - -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ - -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar - elif [ $i == linuxx64 ]; then - mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ - -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ - -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \ - -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \ - -Dtypes=module,klib \ - -Dclassifiers=,cinterop-libsecp256k1 \ - -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ - -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar - elif [ $i == jni-android ]; then - mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ - -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ - -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.aar \ - -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \ - -Dtypes=module \ - -Dclassifiers= \ - -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ - -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar - else - mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ - -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ - -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.jar \ - -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \ - -Dtypes=module \ - -Dclassifiers= \ - -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ - -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar - fi + + case $i in + iosarm64 | iossimulatorarm64 | iosx64 | macosarm64 | macosx64) + mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ + -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ + -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \ + -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION-metadata.jar,$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \ + -Dtypes=jar,module,klib \ + -Dclassifiers=metadata,,cinterop-libsecp256k1 \ + -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ + -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar + ;; + linuxx64) + mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ + -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ + -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \ + -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \ + -Dtypes=module,klib \ + -Dclassifiers=,cinterop-libsecp256k1 \ + -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ + -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar + ;; + jni-android) + mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ + -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ + -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.aar \ + -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \ + -Dtypes=module \ + -Dclassifiers= \ + -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ + -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar + ;; + *) + mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \ + -DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \ + -Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.jar \ + -Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \ + -Dtypes=module \ + -Dclassifiers= \ + -Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \ + -Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar + ;; + esac + popd pushd . done diff --git a/src/nativeInterop/cinterop/libsecp256k1.def b/src/nativeInterop/cinterop/libsecp256k1.def index 6a1ad38..8d310d3 100644 --- a/src/nativeInterop/cinterop/libsecp256k1.def +++ b/src/nativeInterop/cinterop/libsecp256k1.def @@ -7,6 +7,14 @@ staticLibraries.linux = libsecp256k1.a libraryPaths.linux = c/secp256k1/build/linux/ native/build/linux/ native/build/darwin/ linkerOpts.linux = -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib +staticLibraries.macos_x64 = libsecp256k1.a +libraryPaths.macos_x64 = c/secp256k1/build/darwin/ native/build/darwin/ +linkerOpts.macos_x64 = -framework Security -framework Foundation + +staticLibraries.macos_arm64 = libsecp256k1.a +libraryPaths.macos_arm64 = c/secp256k1/build/darwin/ native/build/darwin/ +linkerOpts.macos_arm64 = -framework Security -framework Foundation + staticLibraries.ios = libsecp256k1.a libraryPaths.ios_x64 = c/secp256k1/build/ios/ /usr/local/lib native/build/ios/ libraryPaths.ios_arm64 = c/secp256k1/build/ios/ /usr/local/lib native/build/ios/ diff --git a/tests/build.gradle.kts b/tests/build.gradle.kts index d4ec0ce..6df7c90 100644 --- a/tests/build.gradle.kts +++ b/tests/build.gradle.kts @@ -57,6 +57,8 @@ kotlin { } linuxX64() + macosX64() + macosArm64() iosX64() iosArm64() iosSimulatorArm64()