new: introduce build-logic module to centralize Gradle configuration

This commit is contained in:
2026-07-02 18:29:07 +02:00
parent 87ae329230
commit ddab9b642d
14 changed files with 104 additions and 273 deletions
+13
View File
@@ -0,0 +1,13 @@
plugins {
`kotlin-dsl`
}
dependencies {
implementation(libs.android.gradlePlugin)
implementation(libs.kotlin.gradlePlugin)
implementation(libs.compose.gradlePlugin)
implementation(libs.composeCompiler.gradlePlugin)
// Makes the typed `libs` catalog accessors usable inside precompiled script plugins
// (workaround for https://github.com/gradle/gradle/issues/15383)
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
}
+20
View File
@@ -0,0 +1,20 @@
rootProject.name = "build-logic"
dependencyResolutionManagement {
repositories {
google {
mavenContent {
includeGroupAndSubgroups("androidx")
includeGroupAndSubgroups("com.android")
includeGroupAndSubgroups("com.google")
}
}
mavenCentral()
gradlePluginPortal()
}
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}
@@ -0,0 +1,4 @@
plugins {
id("org.jetbrains.compose")
id("org.jetbrains.kotlin.plugin.compose")
}
@@ -0,0 +1,48 @@
import org.gradle.accessors.dm.LibrariesForLibs
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
id("org.jetbrains.kotlin.multiplatform")
id("com.android.kotlin.multiplatform.library")
}
val libs = the<LibrariesForLibs>()
kotlin {
iosArm64()
iosSimulatorArm64()
jvm()
js {
browser()
}
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
browser()
}
androidLibrary {
// namespace is set per module in the consuming build file
compileSdk =
libs.versions.androidCompileSdk
.get()
.toInt()
minSdk =
libs.versions.androidMinSdk
.get()
.toInt()
compilerOptions {
jvmTarget = JvmTarget.JVM_11
}
}
sourceSets {
commonTest.dependencies {
implementation(libs.kotlin.test)
}
}
}