Skip to content

Commit 603fcc2

Browse files
committed
chore: move Android SDK constants from buildSrc to version catalog
Replace Android.kt (buildSrc) with android-compileSdk, android-minSdk, android-targetSdk, and android-java entries in libs.versions.toml. This makes the values accessible from both build-logic convention plugins and module build scripts, eliminating the duplicate hardcoded values in AndroidLibraryConventionPlugin.
1 parent f7eaa70 commit 603fcc2

5 files changed

Lines changed: 30 additions & 28 deletions

File tree

apps/flipcash/app/build.gradle.kts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ val appNamespace = "${Gradle.flipcashNamespace}.app.android"
3030
android {
3131
// static namespace
3232
namespace = appNamespace
33-
compileSdk = Android.compileSdkVersion
33+
compileSdk = libs.versions.android.compileSdk.get().toInt()
3434

3535
defaultConfig {
3636
versionCode = Packaging.Flipcash.versionCode ?: gitVersionCode()
3737
versionName = Packaging.Flipcash.versionName
3838
applicationId = appNamespace
39-
minSdk = Android.minSdkVersion
40-
targetSdk = Android.targetSdkVersion
41-
testInstrumentationRunner = Android.testInstrumentationRunner
39+
minSdk = libs.versions.android.minSdk.get().toInt()
40+
targetSdk = libs.versions.android.targetSdk.get().toInt()
41+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
4242

4343
buildConfigField("String", "VERSION_NAME", "\"${Packaging.Flipcash.versionName}\"")
4444
buildConfigField("String", "MIXPANEL_API_KEY", "\"${tryReadProperty(rootProject.rootDir, "MIXPANEL_API_KEY")}\"")
@@ -65,6 +65,7 @@ android {
6565
buildTypes {
6666
getByName("release") {
6767
resValue("string", "applicationId", appNamespace)
68+
signingConfig = signingConfigs.getByName("contributors")
6869
isMinifyEnabled = true
6970
isShrinkResources = true
7071
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
@@ -87,8 +88,8 @@ android {
8788
}
8889

8990
compileOptions {
90-
sourceCompatibility(Android.javaVersion)
91-
targetCompatibility(Android.javaVersion)
91+
sourceCompatibility(libs.versions.android.java.get())
92+
targetCompatibility(libs.versions.android.java.get())
9293
isCoreLibraryDesugaringEnabled = true
9394
}
9495

@@ -120,11 +121,11 @@ bugsnag {
120121

121122
kotlin {
122123
jvmToolchain {
123-
languageVersion.set(JavaLanguageVersion.of(Android.javaVersion))
124+
languageVersion.set(JavaLanguageVersion.of(libs.versions.android.java.get()))
124125
}
125126

126127
compilerOptions {
127-
jvmTarget.set(JvmTarget.fromTarget(Android.javaVersion))
128+
jvmTarget.set(JvmTarget.fromTarget(libs.versions.android.java.get()))
128129
optIn.addAll(
129130
"kotlin.time.ExperimentalTime",
130131
"kotlin.ExperimentalUnsignedTypes",

build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,16 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
2121
}
2222
}
2323

24+
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
25+
val compileSdkVersion = libs.findVersion("android-compileSdk").get().requiredVersion.toInt()
26+
val minSdkVersion = libs.findVersion("android-minSdk").get().requiredVersion.toInt()
27+
val javaVersion = libs.findVersion("android-java").get().requiredVersion
28+
2429
extensions.configure<LibraryExtension> {
25-
compileSdk = 37
30+
compileSdk = compileSdkVersion
2631

2732
defaultConfig {
28-
minSdk = 29
33+
minSdk = minSdkVersion
2934
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
3035
}
3136

@@ -34,18 +39,18 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
3439
}
3540

3641
compileOptions {
37-
sourceCompatibility = JavaVersion.VERSION_21
38-
targetCompatibility = JavaVersion.VERSION_21
42+
sourceCompatibility = JavaVersion.toVersion(javaVersion)
43+
targetCompatibility = JavaVersion.toVersion(javaVersion)
3944
}
4045
}
4146

4247
extensions.configure<KotlinAndroidProjectExtension> {
4348
jvmToolchain {
44-
languageVersion.set(JavaLanguageVersion.of(21))
49+
languageVersion.set(JavaLanguageVersion.of(javaVersion))
4550
}
4651

4752
compilerOptions {
48-
jvmTarget.set(JvmTarget.JVM_21)
53+
jvmTarget.set(JvmTarget.fromTarget(javaVersion))
4954
optIn.addAll(
5055
"kotlin.time.ExperimentalTime",
5156
"kotlin.ExperimentalUnsignedTypes",
@@ -54,8 +59,6 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
5459
}
5560
}
5661

57-
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
58-
5962
dependencies {
6063
"implementation"(libs.findLibrary("timber").get())
6164
"implementation"(libs.findLibrary("kotlinx-coroutines-core").get())

buildSrc/src/main/java/Android.kt

Lines changed: 0 additions & 7 deletions
This file was deleted.

gradle/libs.versions.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
[versions]
2+
android-compileSdk = "37"
3+
android-minSdk = "29"
4+
android-targetSdk = "37"
5+
android-java = "21"
6+
27
kotlin = "2.3.21"
38
ksp = "2.3.7"
49
kotlinx-coroutines = "1.11.0"

vendor/opencv/sdk/build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile
104104

105105
android {
106106
namespace 'org.opencv'
107-
compileSdkVersion Android.compileSdkVersion
107+
compileSdkVersion libs.versions.android.compileSdk.get().toInteger()
108108

109109
defaultConfig {
110-
minSdkVersion Android.minSdkVersion
111-
targetSdkVersion Android.targetSdkVersion
110+
minSdkVersion libs.versions.android.minSdk.get().toInteger()
111+
targetSdkVersion libs.versions.android.targetSdk.get().toInteger()
112112

113113

114114
externalNativeBuild {
@@ -125,8 +125,8 @@ android {
125125
}
126126
}
127127
compileOptions {
128-
sourceCompatibility(Android.javaVersion)
129-
targetCompatibility(Android.javaVersion)
128+
sourceCompatibility(libs.versions.android.java.get())
129+
targetCompatibility(libs.versions.android.java.get())
130130
}
131131

132132
buildTypes {

0 commit comments

Comments
 (0)