@@ -8,10 +8,15 @@ package app.passwordstore.gradle
8
8
import app.passwordstore.gradle.KotlinCommonPlugin.Companion.JVM_TOOLCHAIN_ACTION
9
9
import org.gradle.api.Plugin
10
10
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
11
14
import org.gradle.kotlin.dsl.apply
12
15
import org.gradle.kotlin.dsl.getByType
16
+ import org.gradle.kotlin.dsl.withType
13
17
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
14
18
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
19
+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
15
20
16
21
@Suppress(" Unused" )
17
22
class KotlinAndroidPlugin : Plugin <Project > {
@@ -22,5 +27,19 @@ class KotlinAndroidPlugin : Plugin<Project> {
22
27
apply (KotlinCommonPlugin ::class )
23
28
}
24
29
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
+ }
25
41
}
42
+
43
+ private fun VersionCatalog.getVersion (key : String ) =
44
+ findVersion(key).map(VersionConstraint ::toString).get()
26
45
}
0 commit comments