Skip to content

Commit 27c3ad7

Browse files
angelixcdecker
authored andcommitted
feat: Add iOS target in KMP bindings
1 parent e0fe1aa commit 27c3ad7

6 files changed

Lines changed: 56 additions & 34 deletions

File tree

build/.tasks.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,23 @@ tasks:
99
- linux-android-x86_64
1010
cmds:
1111
- cp -a target/release/android/jniLibs libs/gl-sdk-android/lib/src/androidMain
12-
12+
1313
kotlin:
1414
deps:
1515
- android
16+
- ios
17+
- ios-sim
1618
vars:
1719
OS_NAME:
1820
sh: uname | tr '[:upper:]' '[:lower:]'
1921
cmds:
2022
- cargo install --bin gobley-uniffi-bindgen gobley-uniffi-bindgen@0.3.7
2123
- gobley-uniffi-bindgen --config ./libs/gl-sdk/uniffi.kotlin-multiplatform.toml --library ./target/aarch64-linux-android/debug/libglsdk.a --out-dir target/release/kotlin-multiplatform
2224
- cp -a ./target/release/kotlin-multiplatform/* libs/gl-sdk-android/lib/src/
25+
- mkdir -p libs/gl-sdk-android/lib/src/lib/ios-arm64
26+
- mkdir -p libs/gl-sdk-android/lib/src/lib/ios-simulator-arm64
27+
- cp ./target/aarch64-apple-ios/release/libglsdk.a libs/gl-sdk-android/lib/src/lib/ios-arm64/
28+
- cp ./target/aarch64-apple-ios-sim/release/libglsdk.a libs/gl-sdk-android/lib/src/lib/ios-simulator-arm64/
2329
- cp -a {{.ANDROID_NDK_HOME}}/toolchains/llvm/prebuilt/{{.OS_NAME}}-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so libs/gl-sdk-android/lib/src/androidMain/jniLibs/arm64-v8a/
2430
- cp -a {{.ANDROID_NDK_HOME}}/toolchains/llvm/prebuilt/{{.OS_NAME}}-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so libs/gl-sdk-android/lib/src/androidMain/jniLibs/armeabi-v7a/
2531
- cp -a {{.ANDROID_NDK_HOME}}/toolchains/llvm/prebuilt/{{.OS_NAME}}-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so libs/gl-sdk-android/lib/src/androidMain/jniLibs/x86/
@@ -46,12 +52,12 @@ tasks:
4652
ios:
4753
deps:
4854
- ios-apple-aarch64
49-
- ios-apple-x86_64
55+
# - ios-apple-x86_64
5056

5157
ios-sim:
5258
deps:
5359
- ios-sim-apple-aarch64
54-
60+
5561
ios-apple-*:
5662
vars:
5763
ARCH: '{{ index .MATCH 0 }}'

gitlab/deploy-maven.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ publish_snapshot_to_maven:
2828
rules:
2929
- if: '$CI_COMMIT_BRANCH == "main"'
3030
when: on_success
31+
- when: manual
3132
script:
3233
- cd libs/gl-sdk-android
3334
- RAW_VERSION=$(grep '^libraryVersion=' gradle.properties | cut -d'=' -f2)
@@ -42,11 +43,4 @@ publish_snapshot_to_maven:
4243
- SNAPSHOT_VERSION="${NEXT_VERSION}-SNAPSHOT"
4344
- echo "Publishing snapshot version ${SNAPSHOT_VERSION} (base=${BASE_VERSION})"
4445
- ./gradlew -PlibraryVersion=${SNAPSHOT_VERSION} publish --no-daemon
45-
artifacts:
46-
paths:
47-
- libs/gl-sdk-android/lib/build/libs
48-
- libs/gl-sdk-android/lib/build/outputs
49-
- libs/gl-sdk-android/lib/build/publications
50-
when: always
51-
expire_in: 7 days
5246
allow_failure: true

libs/gl-sdk-android/.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,16 @@ gen-external-apklibs
5959
*.zip
6060
*.tar.gz
6161
*.rar
62+
*.a
6263

6364
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
6465
hs_err_pid*
6566
replay_pid*
6667

68+
.kotlin/
69+
6770
glsdk.h
6871
glsdk.common.kt
6972
glsdk.android.kt
7073
glsdk.jvm.kt
71-
glsdk.native.kt
74+
glsdk.native.kt

libs/gl-sdk-android/lib/build.gradle.kts

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,36 @@ kotlin {
2121
jvm()
2222
*/
2323

24-
/*
25-
val xcf = XCFramework()
24+
val xcf = XCFramework()
2625

27-
listOf(
28-
iosArm64(),
29-
iosSimulatorArm64()
30-
).forEach {
26+
listOf(
27+
iosArm64(),
28+
iosSimulatorArm64()
29+
).forEach {
3130

32-
it.binaries.framework {
33-
baseName = "glsdk"
34-
xcf.add(this)
35-
}
31+
it.binaries.framework {
32+
baseName = "glsdk"
33+
xcf.add(this)
34+
}
3635

37-
val platform = when (it.targetName) {
38-
"iosSimulatorArm64" -> "ios_simulator_arm64"
39-
"iosArm64" -> "ios_arm64"
40-
else -> error("Unsupported target $name")
41-
}
36+
val platform = when (it.targetName) {
37+
"iosSimulatorArm64" -> "ios_simulator_arm64"
38+
"iosArm64" -> "ios_arm64"
39+
else -> error("Unsupported target $name")
40+
}
4241

4342

44-
it.compilations["main"].cinterops {
45-
create("glsdkCInterop") {
46-
defFile(project.file("src/nativeInterop/cinterop/glsdk.def"))
47-
includeDirs(project.file("src/nativeInterop/cinterop/headers/glsdk/"), project.file("src/libs/$platform"))
48-
}
43+
it.compilations["main"].cinterops {
44+
create("glsdkCInterop") {
45+
defFile(project.file("src/nativeInterop/cinterop/glsdk.def"))
46+
includeDirs(
47+
project.file("src/nativeInterop/cinterop/headers/glsdk/"),
48+
project.file("src/libs/$platform")
49+
)
4950
}
5051
}
51-
*/
52+
}
53+
5254
compilerOptions.freeCompilerArgs.add("-Xexpect-actual-classes")
5355

5456
sourceSets {
@@ -67,9 +69,11 @@ kotlin {
6769
artifact { type = "aar" }
6870
}
6971
}
72+
/*
7073
jvmMain.dependencies {
7174
implementation(libs.jna)
7275
}
76+
*/
7377
androidUnitTest.dependencies {
7478
implementation(libs.junit)
7579
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.blockstream.glsdk
2+
3+
import kotlin.test.Test
4+
5+
class CommonTest {
6+
7+
@Test
8+
fun test_signer() {
9+
val mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
10+
val signer = Signer(mnemonic)
11+
signer.start()
12+
}
13+
}

libs/gl-sdk-android/lib/src/nativeInterop/cinterop/glsdk.def

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@ package = glsdk.cinterop
33

44
staticLibraries = libglsdk.a
55

6-
libraryPaths.ios_arm64 = src/libs/ios-arm64
7-
libraryPaths.ios_simulator_arm64 = src/libs/ios-simulator-arm64
6+
libraryPaths.ios_arm64 = src/lib/ios-arm64
7+
libraryPaths.ios_simulator_arm64 = src/lib/ios-simulator-arm64
8+
9+
linkerOpts = -framework Security

0 commit comments

Comments
 (0)