diff --git a/build.gradle.kts b/build.gradle.kts index 6e0f9ab17..0f84b5118 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,6 +26,7 @@ buildscript { classpath(libs.google.oss.licenses.plugin) { exclude(group = "com.google.protobuf") } + classpath(libs.buildkonfig.gradlePlugin) } } @@ -50,4 +51,5 @@ plugins { alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.sqldelight.gradle.plugin) apply false alias(libs.plugins.ktrofit) apply false + alias(libs.plugins.buildkonfig) apply false } diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index 80650b276..876dfc20d 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -19,15 +19,13 @@ plugins { alias(libs.plugins.nowinandroid.android.library.jacoco) alias(libs.plugins.nowinandroid.kotlin.inject) alias(libs.plugins.ktrofit) + alias(libs.plugins.buildkonfig) id("kotlinx-serialization") id("com.google.devtools.ksp") id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") } android { - buildFeatures { - buildConfig = true - } namespace = "com.google.samples.apps.nowinandroid.core.network" testOptions { unitTests { @@ -40,6 +38,13 @@ secrets { defaultPropertiesFileName = "secrets.defaults.properties" } +buildKonfig { + packageName = "com.google.samples.apps.nowinandroid.core.network" + defaultConfigs { + buildConfigField(STRING, "BACKEND_URL", "\"https://www.example.com\"") + } +} + kotlin { sourceSets { commonMain.dependencies { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f9821a38f..3f0ec8b5b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -76,6 +76,7 @@ multiplatform-settings = "1.1.1" kermit = "2.0.3" ktor = "3.0.0-beta-1" ktrofit = "1.12.0" +buildKonfig = "0.15.1" [libraries] accompanist-permissions = { group = "com.google.accompanist", name = "accompanist-permissions", version.ref = "accompanist" } @@ -195,6 +196,7 @@ ktor-client-winhttp = { group = "io.ktor", name = "ktor-client-winhttp", version ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" } ktorfit-ksp = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-ksp", version.ref = "ktrofit" } ktorfit-lib = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-lib", version.ref = "ktrofit" } +buildkonfig-gradlePlugin = { group = "com.codingfeline.buildkonfig", name = "buildkonfig-gradle-plugin", version.ref = "buildKonfig" } # Dependencies of the included build-logic android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } @@ -227,6 +229,7 @@ jetbrains-compose = { id = "org.jetbrains.compose", version.ref = "compose-plugi kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } sqldelight-gradle-plugin = { id = "app.cash.sqldelight", version.ref = "sqldelight" } ktrofit = { id = "de.jensklingenberg.ktorfit", version.ref = "ktrofit" } +buildkonfig = { id = "com.codingfeline.buildkonfig", version.ref = "buildKonfig" } # Plugins defined by this project nowinandroid-android-application = { id = "nowinandroid.android.application", version = "unspecified" }