mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
fix(build): automatically configure Compose Compiler workaround
This commit is contained in:
parent
f682d12bd0
commit
84ee08e75c
1 changed files with 23 additions and 0 deletions
|
@ -7,12 +7,15 @@
|
||||||
package dev.msfjarvis.claw.gradle
|
package dev.msfjarvis.claw.gradle
|
||||||
|
|
||||||
import dev.msfjarvis.claw.gradle.KotlinCommonPlugin.Companion.JVM_TOOLCHAIN_ACTION
|
import dev.msfjarvis.claw.gradle.KotlinCommonPlugin.Companion.JVM_TOOLCHAIN_ACTION
|
||||||
|
import org.gradle.accessors.dm.LibrariesForLibs
|
||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.kotlin.dsl.apply
|
import org.gradle.kotlin.dsl.apply
|
||||||
import org.gradle.kotlin.dsl.getByType
|
import org.gradle.kotlin.dsl.getByType
|
||||||
|
import org.gradle.kotlin.dsl.withType
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
|
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
@Suppress("Unused")
|
@Suppress("Unused")
|
||||||
class KotlinAndroidPlugin : Plugin<Project> {
|
class KotlinAndroidPlugin : Plugin<Project> {
|
||||||
|
@ -23,5 +26,25 @@ class KotlinAndroidPlugin : Plugin<Project> {
|
||||||
apply(KotlinCommonPlugin::class)
|
apply(KotlinCommonPlugin::class)
|
||||||
}
|
}
|
||||||
project.extensions.getByType<KotlinProjectExtension>().jvmToolchain(JVM_TOOLCHAIN_ACTION)
|
project.extensions.getByType<KotlinProjectExtension>().jvmToolchain(JVM_TOOLCHAIN_ACTION)
|
||||||
|
val libs = project.extensions.getByName("libs") as LibrariesForLibs
|
||||||
|
val composeCompilerVersion = libs.versions.composeCompiler.get()
|
||||||
|
val kotlinVersion = libs.versions.kotlin.get()
|
||||||
|
val matches = COMPOSE_COMPILER_VERSION_REGEX.find(composeCompilerVersion)
|
||||||
|
if (matches != null) {
|
||||||
|
val (compilerKotlinVersion) = matches.destructured
|
||||||
|
if (compilerKotlinVersion != kotlinVersion) {
|
||||||
|
project.tasks.withType<KotlinCompile>().configureEach {
|
||||||
|
compilerOptions.freeCompilerArgs.addAll(
|
||||||
|
"-P",
|
||||||
|
"plugin:androidx.compose.compiler.plugins.kotlin:suppressKotlinVersionCompatibilityCheck=$kotlinVersion",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private companion object {
|
||||||
|
// Matches against 1.5.0-dev-k1.9.0-6a60475e07f
|
||||||
|
val COMPOSE_COMPILER_VERSION_REGEX = "\\d.\\d.\\d-dev-k(\\d.\\d.\\d+)-[a-z0-9]+".toRegex()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue