1+ import java.util.Properties
2+
3+ plugins {
4+ id(" com.android.library" ) version " 8.0.1"
5+ id(" maven-publish" )
6+ id(" signing" )
7+ }
8+
9+ group = " co.powersync"
10+ version = " 0.1.3"
11+ description = " PowerSync Core SQLite Extension"
12+
13+ repositories {
14+ mavenCentral()
15+ google()
16+ }
17+
18+ val buildRust = tasks.register(" buildRust" , Exec ::class .java) {
19+ System .out .println (" foo" )
20+ workingDir(" .." )
21+ commandLine(" cargo" , " ndk" , " -t" , " armeabi-v7a" , " -t" , " arm64-v8a" , " -t" , " x86" , " -t" , " x86_64" , " -o" , " ./android/build/intermediates/jniLibs" , " build" , " --release" , " -Zbuild-std" , " -p" , " powersync_loadable" )
22+ }
23+
24+ android {
25+ compileSdk = 33
26+ ndkVersion = " 25.2.9519653"
27+
28+ namespace = " co.powersync.sqlitecore"
29+
30+ defaultConfig {
31+ minSdk = 24
32+
33+ ndk {
34+ abiFilters + = setOf (" armeabi-v7a" , " arm64-v8a" , " x86" , " x86_64" )
35+ }
36+ }
37+
38+ sourceSets {
39+ getByName(" main" ) {
40+ jniLibs.srcDir(" build/intermediates/jniLibs" )
41+ }
42+ }
43+
44+ buildTypes {
45+ release {
46+ isMinifyEnabled = false
47+ }
48+ }
49+
50+ publishing {
51+ singleVariant(" release" ) {
52+ withSourcesJar()
53+ }
54+ }
55+ }
56+ tasks.withType<JavaCompile > {
57+ dependsOn(buildRust)
58+ }
59+
60+ val secretsFile = rootProject.file(" local.properties" )
61+ val secretProperties = Properties ()
62+
63+ if (secretsFile.exists()) {
64+ secretsFile.reader().use { secretProperties.load(it) }
65+
66+ secretProperties.forEach { key, value ->
67+ if (key is String && key.startsWith(" signing" )) {
68+ ext[key] = value
69+ }
70+ }
71+ }
72+
73+ publishing {
74+ publications {
75+ register<MavenPublication >(" maven" ) {
76+ groupId = project.group.toString()
77+ artifactId = project.name
78+ version = project.version.toString()
79+
80+ afterEvaluate {
81+ from(components[" release" ])
82+ }
83+
84+ pom {
85+ name.set(project.name)
86+ description.set(project.description)
87+ url.set(" https://github.com/journeyapps/powersync-sqlite-core" )
88+
89+ developers {
90+ developer {
91+ id.set(" journeyapps" )
92+ name.set(" Journey Mobile, Inc." )
93+ email.set(" info@journeyapps.com" )
94+ }
95+ }
96+
97+ licenses {
98+ license {
99+ name.set(" Proprietary" )
100+ }
101+ }
102+
103+ scm {
104+ connection.set(" scm:git:github.com/journeyapps/powersync-sqlite-core.git" )
105+ developerConnection.set(" scm:git:ssh://github.com/journeyapps/powersync-sqlite-core.git" )
106+ url.set(" https://github.com/journeyapps/powersync-sqlite-core" )
107+ }
108+ }
109+ }
110+ }
111+
112+ repositories {
113+ maven {
114+ name = " sonatype"
115+ url = uri(" https://oss.sonatype.org/service/local/staging/deploy/maven2/" )
116+ credentials {
117+ username = secretProperties.getProperty(" ossrhUsername" )
118+ password = secretProperties.getProperty(" ossrhPassword" )
119+ }
120+ }
121+
122+ maven {
123+ name = " here"
124+ url = uri(" build/here/" )
125+ }
126+ }
127+ }
128+
129+ signing {
130+ useGpgCmd()
131+ sign(publishing.publications)
132+ }
133+
134+ tasks.withType<AbstractPublishToMaven >() {
135+ dependsOn(" assembleRelease" )
136+ }
0 commit comments