Hack for type-safe accessors in convention plugins
This commit is contained in:
1 parent
581125db62
commit
028a994070
6 files changed
+19
-16
No files matched your search
@@ -7,6 +7,9 @@ dependencies {
|
||||
compileOnly(libs.android.gradlePlugin)
|
||||
compileOnly(libs.kotlin.gradlePlugin)
|
||||
compileOnly(libs.spotless.gradlePlugin)
|
||||
|
||||
// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
|
||||
compileOnly(files(libs::class.java.superclass.protectionDomain.codeSource.location))
|
||||
}
|
||||
|
||||
gradlePlugin {
|
||||
|
||||
@@ -16,10 +16,10 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidExtension
|
||||
@Suppress("unused")
|
||||
class AndroidApplicationConventionPlugin : Plugin<Project> {
|
||||
override fun apply(target: Project) = with(target) {
|
||||
apply(plugin = libs.findPlugin("kotlin-android").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("android-application").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("compose-compiler").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("composeCompilerReportGenerator").get().get().pluginId)
|
||||
apply(plugin = libs.plugins.kotlin.android.get().pluginId)
|
||||
apply(plugin = libs.plugins.android.application.get().pluginId)
|
||||
apply(plugin = libs.plugins.compose.compiler.get().pluginId)
|
||||
apply(plugin = libs.plugins.composeCompilerReportGenerator.get().pluginId)
|
||||
|
||||
configure<KotlinAndroidExtension> {
|
||||
jvmToolchain(21)
|
||||
|
||||
+3
-3
@@ -10,9 +10,9 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
class MultiplatformLibraryComposeConventionPlugin : Plugin<Project> {
|
||||
override fun apply(target: Project) = with(target) {
|
||||
apply<MultiplatformLibraryConventionPlugin>()
|
||||
apply(plugin = libs.findPlugin("compose-compiler").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("compose-multiplatform").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("composeCompilerReportGenerator").get().get().pluginId)
|
||||
apply(plugin = libs.plugins.compose.compiler.get().pluginId)
|
||||
apply(plugin = libs.plugins.compose.multiplatform.get().pluginId)
|
||||
apply(plugin = libs.plugins.composeCompilerReportGenerator.get().pluginId)
|
||||
|
||||
configure<KotlinMultiplatformExtension> {
|
||||
compilerOptions {
|
||||
|
||||
@@ -18,9 +18,9 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||
class MultiplatformLibraryConventionPlugin : Plugin<Project> {
|
||||
override fun apply(target: Project) = with(target) {
|
||||
apply(plugin = libs.findPlugin("kotlin-multiplatform").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("android-kotlin-multiplatform-library").get().get().pluginId)
|
||||
apply(plugin = libs.findPlugin("android-lint").get().get().pluginId)
|
||||
apply(plugin = libs.plugins.kotlin.multiplatform.get().pluginId)
|
||||
apply(plugin = libs.plugins.android.kotlin.multiplatform.library.get().pluginId)
|
||||
apply(plugin = libs.plugins.android.lint.get().pluginId)
|
||||
|
||||
configure<KotlinMultiplatformExtension> {
|
||||
jvmToolchain(21)
|
||||
@@ -60,7 +60,7 @@ class MultiplatformLibraryConventionPlugin : Plugin<Project> {
|
||||
configureSpotless()
|
||||
|
||||
dependencies {
|
||||
"coreLibraryDesugaring"(libs.findLibrary("desugar").get())
|
||||
"coreLibraryDesugaring"(libs.desugar)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.ehviewer
|
||||
|
||||
import org.gradle.accessors.dm.LibrariesForLibs
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.VersionCatalogsExtension
|
||||
import org.gradle.kotlin.dsl.getByType
|
||||
import org.gradle.kotlin.dsl.the
|
||||
|
||||
internal val Project.libs
|
||||
get() = extensions.getByType<VersionCatalogsExtension>().named("libs")
|
||||
get(): LibrariesForLibs = the()
|
||||
@@ -6,10 +6,10 @@ import org.gradle.kotlin.dsl.apply
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
|
||||
internal fun Project.configureSpotless() {
|
||||
apply(plugin = libs.findPlugin("spotless").get().get().pluginId)
|
||||
apply(plugin = libs.plugins.spotless.get().pluginId)
|
||||
|
||||
configure<SpotlessExtension> {
|
||||
val ktlintVersion = libs.findLibrary("ktlint").get().get().version
|
||||
val ktlintVersion = libs.ktlint.get().version
|
||||
kotlin {
|
||||
// https://github.com/diffplug/spotless/issues/111
|
||||
target("src/**/*.kt")
|
||||
|
||||
Reference in new issue
Block a user