11import java.util.Base64
22
33plugins {
4- id(" com.android.library" ) version " 8.0.1"
54 id(" maven-publish" )
65 id(" signing" )
76}
@@ -15,7 +14,7 @@ repositories {
1514 google()
1615}
1716
18- val buildRust = tasks.register(" buildRust" , Exec :: class .java ) {
17+ val buildRust = tasks.register< Exec > (" buildRust" ) {
1918 workingDir(" .." )
2019 commandLine(
2120 " cargo" ,
@@ -38,36 +37,39 @@ val buildRust = tasks.register("buildRust", Exec::class.java) {
3837 )
3938}
4039
41- android {
42- compileSdk = 33
43-
44- namespace = " co.powersync.sqlitecore"
40+ val prefabAar = tasks.register<Zip >(" prefabAar" ) {
41+ dependsOn(buildRust)
4542
46- defaultConfig {
47- minSdk = 21
43+ from(" build/intermediates/jniLibs" ) {
44+ include(" **/*" )
45+ into(" jni" )
4846 }
4947
50- sourceSets {
51- getByName(" main" ) {
52- jniLibs.srcDir(" build/intermediates/jniLibs" )
53- }
48+ from(" src/" ) {
49+ include(" **/*" )
5450 }
5551
56- buildTypes {
57- release {
58- isMinifyEnabled = false
59- }
60- }
52+ val architectures = listOf (
53+ " armeabi-v7a" ,
54+ " arm64-v8a" ,
55+ " x86" ,
56+ " x86_64"
57+ )
6158
62- publishing {
63- singleVariant(" release" ) {
64- withSourcesJar()
59+ architectures.forEach { architecture ->
60+ from(" build/intermediates/jniLibs/$architecture /" ) {
61+ include(" libpowersync.so" )
62+ into(" prefab/modules/powersync/libs/android.$architecture /" )
6563 }
6664 }
65+
66+ archiveFileName.set(" build/outputs/powersync-sqlite-core.aar" )
67+ destinationDirectory.set(file(" ./" ))
6768}
6869
69- tasks.named(" preBuild" ) {
70- dependsOn(buildRust)
70+ val sourcesJar = tasks.register<Jar >(" sourcesJar" ) {
71+ // We don't have any actual java sources to bundle
72+ archiveClassifier.set(" sources" )
7173}
7274
7375publishing {
@@ -78,7 +80,13 @@ publishing {
7880 version = project.version.toString()
7981
8082 afterEvaluate {
81- from(components[" release" ])
83+ artifact(prefabAar) {
84+ extension = " aar"
85+ }
86+
87+ artifact(sourcesJar) {
88+ classifier = " sources"
89+ }
8290 }
8391
8492 pom {
@@ -147,5 +155,5 @@ signing {
147155}
148156
149157tasks.withType<AbstractPublishToMaven >() {
150- dependsOn(" assembleRelease " )
158+ dependsOn(prefabAar )
151159}
0 commit comments