Skip to content

Commit 590b06c

Browse files
tomLadderThomas Leiter
andauthored
Generate Kotlin bindings & enable dynamic libraries for Android (#40)
* chore: generate kotlin bindings & enable shared library * chore: generate kotlin bindings & enable shared library --------- Co-authored-by: Thomas Leiter <thomas@fasky.io>
1 parent b0668f0 commit 590b06c

27 files changed

Lines changed: 94492 additions & 47011 deletions

.github/workflows/build-release.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
uses: actions/upload-artifact@v4
2121
with:
2222
name: android-libs
23-
path: android/**/*.a
23+
path: android/**/*.so
2424
if-no-files-found: error
2525

2626
ios:
@@ -42,4 +42,3 @@ jobs:
4242
name: xcframework
4343
path: build/*.xcframework
4444
if-no-files-found: error
45-

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ project.xcworkspace
3838
local.properties
3939
android.iml
4040
*.aar
41-
android/src/main/java/org
42-
android/src/main/java/uniffi
4341

4442
# Cocoapods
4543
example/ios/Pods
@@ -79,6 +77,7 @@ lib/
7977
# uniffi-bindgen-react-native
8078
rust_modules/
8179
*.a
80+
*.so
8281

8382
# React Native Codegen
8483
ios/generated

android/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
4444

4545
cmake_path(
4646
SET MY_RUST_LIB
47-
${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libmatrix_sdk_ffi.a
47+
${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libmatrix_sdk_ffi.so
4848
NORMALIZE
4949
)
50-
add_library(my_rust_lib STATIC IMPORTED)
51-
set_target_properties(my_rust_lib PROPERTIES IMPORTED_LOCATION ${MY_RUST_LIB})
50+
add_library(my_rust_lib SHARED IMPORTED)
51+
set_target_properties(my_rust_lib PROPERTIES IMPORTED_LOCATION ${MY_RUST_LIB} IMPORTED_NO_SONAME ON)
5252

5353
# Add ReactAndroid libraries, being careful to account for different versions.
5454
find_package(ReactAndroid REQUIRED CONFIG)

android/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ dependencies {
133133
//noinspection GradleDynamicVersion
134134
implementation "com.facebook.react:react-native:+"
135135
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
136+
implementation "net.java.dev.jna:jna:5.17.0@aar"
136137
}
137138

138139
if (isNewArchitectureEnabled()) {

android/proguard-rules.pro

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Generated by uniffi-bindgen-react-native
2+
-dontwarn java.awt.*
3+
-keep class com.sun.jna.* { *; }
4+
-keepclassmembers class * extends com.sun.jna.* { public *; }

0 commit comments

Comments
 (0)