Skip to content

Commit bae4744

Browse files
authored
Add macos build targets (#104)
* Add macos build targets * Update snapshot publishing script
1 parent b2eb68b commit bae4744

File tree

6 files changed

+69
-39
lines changed

6 files changed

+69
-39
lines changed

build.gradle.kts

+8
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ kotlin {
5858
secp256k1CInterop("host")
5959
}
6060

61+
macosX64 {
62+
secp256k1CInterop("host")
63+
}
64+
65+
macosArm64 {
66+
secp256k1CInterop("host")
67+
}
68+
6169
iosX64 {
6270
secp256k1CInterop("ios")
6371
}

gradle.properties

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ org.gradle.parallel = true
66
kotlin.code.style = official
77
kotlin.native.ignoreDisabledTargets = true
88
kotlin.mpp.enableCInteropCommonization=true
9+
kotlin.native.cacheKind.macosArm64=none
910

1011
# Android
1112
android.useAndroidX = true

native/build.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ else
2323
fi
2424

2525
./autogen.sh
26-
./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
26+
if [ "$TARGET" == "darwin" ]; then
27+
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
28+
else
29+
./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
30+
fi
2731
make clean
2832
make
2933

publishing/secp256k1-kmp-snapshot-deploy.sh

+45-38
Original file line numberDiff line numberDiff line change
@@ -21,45 +21,52 @@ mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/conte
2121
-Djavadoc=$ARTIFACT_ID_BASE-$VERSION-javadoc.jar
2222
popd
2323
pushd .
24-
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
24+
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
2525
cd fr/acinq/secp256k1/secp256k1-kmp-$i/$VERSION
26-
if [ $i == iosarm64 ] || [ $i == iossimulatorarm64 ] || [ $i == iosx64 ]; then
27-
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
28-
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
29-
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \
30-
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION-metadata.jar,$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \
31-
-Dtypes=jar,module,klib \
32-
-Dclassifiers=metadata,,cinterop-libsecp256k1 \
33-
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
34-
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
35-
elif [ $i == linuxx64 ]; then
36-
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
37-
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
38-
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \
39-
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \
40-
-Dtypes=module,klib \
41-
-Dclassifiers=,cinterop-libsecp256k1 \
42-
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
43-
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
44-
elif [ $i == jni-android ]; then
45-
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
46-
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
47-
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.aar \
48-
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \
49-
-Dtypes=module \
50-
-Dclassifiers= \
51-
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
52-
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
53-
else
54-
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
55-
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
56-
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.jar \
57-
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \
58-
-Dtypes=module \
59-
-Dclassifiers= \
60-
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
61-
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
62-
fi
26+
27+
case $i in
28+
iosarm64 | iossimulatorarm64 | iosx64 | macosarm64 | macosx64)
29+
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
30+
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
31+
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \
32+
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION-metadata.jar,$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \
33+
-Dtypes=jar,module,klib \
34+
-Dclassifiers=metadata,,cinterop-libsecp256k1 \
35+
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
36+
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
37+
;;
38+
linuxx64)
39+
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
40+
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
41+
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.klib \
42+
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module,$ARTIFACT_ID_BASE-$i-$VERSION-cinterop-libsecp256k1.klib \
43+
-Dtypes=module,klib \
44+
-Dclassifiers=,cinterop-libsecp256k1 \
45+
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
46+
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
47+
;;
48+
jni-android)
49+
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
50+
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
51+
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.aar \
52+
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \
53+
-Dtypes=module \
54+
-Dclassifiers= \
55+
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
56+
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
57+
;;
58+
*)
59+
mvn deploy:deploy-file -DrepositoryId=ossrh -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
60+
-DpomFile=$ARTIFACT_ID_BASE-$i-$VERSION.pom \
61+
-Dfile=$ARTIFACT_ID_BASE-$i-$VERSION.jar \
62+
-Dfiles=$ARTIFACT_ID_BASE-$i-$VERSION.module \
63+
-Dtypes=module \
64+
-Dclassifiers= \
65+
-Dsources=$ARTIFACT_ID_BASE-$i-$VERSION-sources.jar \
66+
-Djavadoc=$ARTIFACT_ID_BASE-$i-$VERSION-javadoc.jar
67+
;;
68+
esac
69+
6370
popd
6471
pushd .
6572
done

src/nativeInterop/cinterop/libsecp256k1.def

+8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ staticLibraries.linux = libsecp256k1.a
77
libraryPaths.linux = c/secp256k1/build/linux/ native/build/linux/ native/build/darwin/
88
linkerOpts.linux = -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib
99

10+
staticLibraries.macos_x64 = libsecp256k1.a
11+
libraryPaths.macos_x64 = c/secp256k1/build/darwin/ native/build/darwin/
12+
linkerOpts.macos_x64 = -framework Security -framework Foundation
13+
14+
staticLibraries.macos_arm64 = libsecp256k1.a
15+
libraryPaths.macos_arm64 = c/secp256k1/build/darwin/ native/build/darwin/
16+
linkerOpts.macos_arm64 = -framework Security -framework Foundation
17+
1018
staticLibraries.ios = libsecp256k1.a
1119
libraryPaths.ios_x64 = c/secp256k1/build/ios/ /usr/local/lib native/build/ios/
1220
libraryPaths.ios_arm64 = c/secp256k1/build/ios/ /usr/local/lib native/build/ios/

tests/build.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ kotlin {
5757
}
5858

5959
linuxX64()
60+
macosX64()
61+
macosArm64()
6062
iosX64()
6163
iosArm64()
6264
iosSimulatorArm64()

0 commit comments

Comments
 (0)