From 36595ed4cd3a37073baaba227449adc8cb86476f Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Sat, 7 Jan 2023 08:54:04 +0530 Subject: [PATCH] chore: dynamically calculate version code from version string --- build-logic/ide/src/main/kotlin/BuildConfig.kt | 3 --- build.gradle.kts | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/build-logic/ide/src/main/kotlin/BuildConfig.kt b/build-logic/ide/src/main/kotlin/BuildConfig.kt index d017f4ec1..5021a32e8 100644 --- a/build-logic/ide/src/main/kotlin/BuildConfig.kt +++ b/build-logic/ide/src/main/kotlin/BuildConfig.kt @@ -40,9 +40,6 @@ object BuildConfig { /** The target SDK version. */ const val targetSdk = 28 - /** The version code. */ - const val versionCode = 214 - /** The source and target Java compatibility. */ val javaVersion = JavaVersion.VERSION_11 val javaVersionMajor = 11 diff --git a/build.gradle.kts b/build.gradle.kts index c9d2bcb21..3f0959dcd 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,6 @@ import com.android.build.gradle.BaseExtension import com.itsaky.androidide.plugins.AndroidIDEPlugin -import com.mooltiverse.oss.nyx.state.State @Suppress("DSL_SCOPE_VIOLATION") plugins { @@ -29,6 +28,18 @@ plugins { buildscript { dependencies { classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } } +val Project.projectVersionCode by lazy { + val version = rootProject.version.toString() + val regex = Regex("^v\\d+\\.?\\d+\\.?\\d+") + + return@lazy regex.find(version)?.value?.substring(1)?.replace(".", "")?.toInt()?.also { + logger.warn("Version code is '$it' (from version ${rootProject.version}).") + } + ?: throw IllegalStateException( + "Invalid version string '$version'. Version names must be SEMVER with 'v' prefix" + ) +} + fun Project.configureBaseExtension() { extensions.findByType(BaseExtension::class)?.run { compileSdkVersion(BuildConfig.compileSdk) @@ -37,7 +48,7 @@ fun Project.configureBaseExtension() { defaultConfig { minSdk = BuildConfig.minSdk targetSdk = BuildConfig.targetSdk - versionCode = BuildConfig.versionCode + versionCode = projectVersionCode versionName = rootProject.version.toString() }