Files
android-projects/build-logic/convention/src/main/kotlin/ru/shadowsparky/AndroidExt.kt
T

49 lines
1.6 KiB
Kotlin

package ru.shadowsparky
import com.android.build.api.dsl.ApplicationExtension
import com.android.build.api.dsl.LibraryExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Project
fun LibraryExtension.setupAndroid(project: Project) {
val libs = project.findLibs()
compileSdk {
version = release(libs.findVersion("proj.compile").get().toString().toInt())
}
defaultConfig {
minSdk = libs.findVersion("proj.min").get().toString().toInt()
}
compileOptions {
val javaVersion = JavaVersion.toVersion(libs.findVersion("proj.java").get())
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
}
}
fun ApplicationExtension.setupAndroid(project: Project) {
val libs = project.findLibs()
compileSdk {
version = release(libs.findVersion("proj.compile").get().toString().toInt())
}
defaultConfig {
minSdk = libs.findVersion("proj.min").get().toString().toInt()
targetSdk {
version = release(libs.findVersion("proj.target").get().toString().toInt())
}
}
compileOptions {
val javaVersion = JavaVersion.toVersion(libs.findVersion("proj.java").get())
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
}
}
fun generateVersionCode(versionName: String): Int {
val parts = versionName.split(".")
val major = parts.getOrNull(0)?.toIntOrNull() ?: 0
val minor = parts.getOrNull(1)?.toIntOrNull() ?: 0
val patch = parts.getOrNull(2)?.toIntOrNull() ?: 0
if (minor > 999 || patch > 999) error("invalid minor or patch!")
return major * 1_000_000 + minor * 1_000 + patch
}