Skip to content

Commit 15f8ff1

Browse files
Apply common Stream conventions plugins (#23)
Co-authored-by: Aleksandar Apostolov <[email protected]>
1 parent d142005 commit 15f8ff1

File tree

7 files changed

+42
-40
lines changed

7 files changed

+42
-40
lines changed

app/build.gradle.kts

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2-
31
plugins {
4-
alias(libs.plugins.android.application)
2+
alias(libs.plugins.stream.android.application)
53
alias(libs.plugins.kotlin.android)
64
alias(libs.plugins.kotlin.compose)
75
}
86

97
kotlin {
108
compilerOptions {
11-
jvmTarget.set(JvmTarget.JVM_11)
129
freeCompilerArgs.addAll(
1310
"-opt-in=io.getstream.android.core.annotations.StreamInternalApi",
1411
"-XXLanguage:+PropertyParamAnnotationDefaultTargetMode"
@@ -18,12 +15,9 @@ kotlin {
1815

1916
android {
2017
namespace = "io.getstream.android.core"
21-
compileSdk = 36
2218

2319
defaultConfig {
2420
applicationId = "io.getstream.android.core.sample"
25-
minSdk = 21
26-
targetSdk = 36
2721
versionCode = 1
2822
versionName = "1.0"
2923

@@ -39,13 +33,6 @@ android {
3933
)
4034
}
4135
}
42-
compileOptions {
43-
sourceCompatibility = JavaVersion.VERSION_11
44-
targetCompatibility = JavaVersion.VERSION_11
45-
}
46-
kotlinOptions {
47-
jvmTarget = "11"
48-
}
4936
buildFeatures {
5037
compose = true
5138
}
@@ -73,4 +60,4 @@ dependencies {
7360
androidTestImplementation(libs.androidx.ui.test.junit4)
7461
debugImplementation(libs.androidx.ui.tooling)
7562
debugImplementation(libs.androidx.ui.test.manifest)
76-
}
63+
}

build.gradle.kts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import com.android.build.api.dsl.ApplicationExtension
2+
import com.android.build.api.dsl.LibraryExtension
13
import java.io.FileNotFoundException
24
import java.util.Calendar
35

@@ -7,6 +9,9 @@ apply(plugin = "org.jetbrains.dokka")
79
apply(from = "${rootDir}/gradle/scripts/sonar.gradle")
810
// Top-level build file where you can add configuration options common to all sub-projects/modules.
911
plugins {
12+
alias(libs.plugins.stream.android.library) apply false
13+
alias(libs.plugins.stream.android.application) apply false
14+
alias(libs.plugins.stream.java.library) apply false
1015
alias(libs.plugins.android.application) apply false
1116
alias(libs.plugins.kotlin.android) apply false
1217
alias(libs.plugins.jetbrains.kotlin.jvm) apply false
@@ -38,6 +43,29 @@ detekt {
3843
buildUponDefaultConfig = true
3944
}
4045

46+
subprojects {
47+
// Configure Android projects with common SDK versions as soon as either plugin is applied
48+
pluginManager.withPlugin("com.android.library") {
49+
extensions.configure<LibraryExtension> {
50+
defaultConfig {
51+
compileSdk = libs.versions.compileSdk.get().toInt()
52+
minSdk = libs.versions.minSdk.get().toInt()
53+
lint.targetSdk = libs.versions.targetSdk.get().toInt()
54+
testOptions.targetSdk = libs.versions.targetSdk.get().toInt()
55+
}
56+
}
57+
}
58+
pluginManager.withPlugin("com.android.application") {
59+
extensions.configure<ApplicationExtension> {
60+
defaultConfig {
61+
compileSdk = libs.versions.compileSdk.get().toInt()
62+
minSdk = libs.versions.minSdk.get().toInt()
63+
targetSdk = libs.versions.targetSdk.get().toInt()
64+
}
65+
}
66+
}
67+
}
68+
4169
// License tasks
4270
subprojects {
4371
apply(from = "${rootDir}/gradle/scripts/coverage.gradle")
@@ -76,4 +104,4 @@ subprojects {
76104
}
77105
}
78106

79-
apply(from = "${rootDir}/scripts/publish-root.gradle")
107+
apply(from = "${rootDir}/scripts/publish-root.gradle")

buildSrc/src/main/kotlin/io/getstream/core/Configuration.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616
package io.getstream.core
1717

1818
object Configuration {
19-
const val compileSdk = 36
20-
const val targetSdk = 36
21-
const val sampleTargetSdk = 36
22-
const val minSdk = 21
2319
const val majorVersion = 1
2420
const val minorVersion = 0
2521
const val patchVersion = 0

gradle/libs.versions.toml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
[versions]
2+
compileSdk = "36"
3+
targetSdk = "36"
4+
minSdk = "21"
25
agp = "8.11.1"
36
core = "1.7.0"
47
kotlin = "2.2.0"
@@ -23,6 +26,7 @@ ksp = "2.2.0-2.0.2"
2326
robolectric = "4.15.1"
2427
detekt = "1.23.8"
2528
spotless = "7.2.1"
29+
streamConventions = "0.2.0"
2630
kover = "0.9.1"
2731
sonarqube = "6.0.1.5171"
2832
kotlinDokka = "1.9.20"
@@ -76,8 +80,10 @@ kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "ko
7680
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
7781
arturbosch-detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
7882
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
83+
stream-android-library = { id = "io.getstream.android.library", version.ref = "streamConventions" }
84+
stream-android-application = { id = "io.getstream.android.application", version.ref = "streamConventions" }
85+
stream-java-library = { id = "io.getstream.java.library", version.ref = "streamConventions" }
7986
dokka = { id = "org.jetbrains.dokka", version.ref = "kotlinDokka" }
8087
nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPlugin" }
8188
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover"}
8289
sonarqube = { id = "org.sonarqube", version.ref = "sonarqube"}
83-

settings.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import java.net.URI
2-
31
include(":stream-android-core-annotations")
42

53

64
pluginManagement {
75
repositories {
6+
mavenLocal()
87
google {
98
content {
109
includeGroupByRegex("com\\.android.*")
Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id("java-library")
2+
alias(libs.plugins.stream.java.library)
33
alias(libs.plugins.jetbrains.kotlin.jvm)
44
}
55

@@ -12,12 +12,5 @@ rootProject.extra.apply {
1212
apply(from = "${rootDir}/scripts/publish-module.gradle")
1313

1414
java {
15-
sourceCompatibility = JavaVersion.VERSION_11
16-
targetCompatibility = JavaVersion.VERSION_11
1715
withSourcesJar()
1816
}
19-
kotlin {
20-
compilerOptions {
21-
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
22-
}
23-
}

stream-android-core/build.gradle.kts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.getstream.core.Configuration
55
import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation
66

77
plugins {
8-
alias(libs.plugins.android.library)
8+
alias(libs.plugins.stream.android.library)
99
alias(libs.plugins.kotlin.android)
1010
alias(libs.plugins.ksp)
1111
alias(libs.plugins.arturbosch.detekt)
@@ -34,11 +34,8 @@ kotlin {
3434

3535
android {
3636
namespace = "io.getstream.android.core"
37-
compileSdk = Configuration.compileSdk
3837

3938
defaultConfig {
40-
minSdk = Configuration.minSdk
41-
4239
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
4340
consumerProguardFiles("consumer-rules.pro")
4441
}
@@ -52,10 +49,6 @@ android {
5249
)
5350
}
5451
}
55-
compileOptions {
56-
sourceCompatibility = JavaVersion.VERSION_11
57-
targetCompatibility = JavaVersion.VERSION_11
58-
}
5952

6053
lint {
6154
abortOnError = true
@@ -102,4 +95,4 @@ dependencies {
10295
testImplementation(libs.mockk)
10396
testImplementation(libs.kotlinx.coroutines.test)
10497
testImplementation(libs.mockwebserver)
105-
}
98+
}

0 commit comments

Comments
 (0)