Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 214140d

Browse files
committed
feat(build): automatically handle Compose Compiler compatibility override
1 parent 61ae1d4 commit 214140d

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinAndroidPlugin.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,15 @@ package app.passwordstore.gradle
88
import app.passwordstore.gradle.KotlinCommonPlugin.Companion.JVM_TOOLCHAIN_ACTION
99
import org.gradle.api.Plugin
1010
import org.gradle.api.Project
11+
import org.gradle.api.artifacts.VersionCatalog
12+
import org.gradle.api.artifacts.VersionCatalogsExtension
13+
import org.gradle.api.artifacts.VersionConstraint
1114
import org.gradle.kotlin.dsl.apply
1215
import org.gradle.kotlin.dsl.getByType
16+
import org.gradle.kotlin.dsl.withType
1317
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
1418
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
19+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
1520

1621
@Suppress("Unused")
1722
class KotlinAndroidPlugin : Plugin<Project> {
@@ -22,5 +27,19 @@ class KotlinAndroidPlugin : Plugin<Project> {
2227
apply(KotlinCommonPlugin::class)
2328
}
2429
project.extensions.getByType<KotlinProjectExtension>().jvmToolchain(JVM_TOOLCHAIN_ACTION)
30+
val catalog = project.extensions.getByType<VersionCatalogsExtension>()
31+
val libs = catalog.named("libs")
32+
if (libs.getVersion("composeCompiler").contains("-dev")) {
33+
val kotlinVersion = libs.getVersion("kotlin")
34+
project.tasks.withType<KotlinCompile>().configureEach {
35+
compilerOptions.freeCompilerArgs.addAll(
36+
"-P",
37+
"plugin:androidx.compose.compiler.plugins.kotlin:suppressKotlinVersionCompatibilityCheck=$kotlinVersion",
38+
)
39+
}
40+
}
2541
}
42+
43+
private fun VersionCatalog.getVersion(key: String) =
44+
findVersion(key).map(VersionConstraint::toString).get()
2645
}

0 commit comments

Comments
 (0)