diff --git a/compat-patrouille-gradle-plugin/build.gradle.kts b/compat-patrouille-gradle-plugin/build.gradle.kts index c51adc8..710572b 100644 --- a/compat-patrouille-gradle-plugin/build.gradle.kts +++ b/compat-patrouille-gradle-plugin/build.gradle.kts @@ -1,11 +1,9 @@ import com.gradleup.librarian.gradle.Librarian -import org.gradle.api.internal.artifacts.dependencies.DefaultFileCollectionDependency plugins { id("org.jetbrains.kotlin.jvm") - id("java-gradle-plugin") - id("com.gradleup.compat.patrouille") - id("com.gradleup.gratatouille") + id("com.google.devtools.ksp") + id("com.gradleup.gratatouille.wiring") } Librarian.module(project) @@ -14,25 +12,10 @@ dependencies { compileOnly(libs.gradle.api) compileOnly(libs.agp) compileOnly(libs.kgp) + implementation(libs.gratatouille.wiring.runtime) gratatouille(project(":compat-patrouille-tasks")) } -configurations.getByName("api").dependencies.removeIf { - it is DefaultFileCollectionDependency +gratatouille { + codeGeneration() } - -compatPatrouille { - java(11) - kotlin("2.0.21") -} - -gradlePlugin { - plugins { - create("com.gradleup.compat.patrouille") { - id = "com.gradleup.compat.patrouille" - description = "Helps with your compatibility troubles" - implementationClass = "compat.patrouille.CompatPatrouillePlugin" - } - } -} - diff --git a/compat-patrouille-gradle-plugin/src/main/kotlin/compat/patrouille/CompatPatrouillePlugin.kt b/compat-patrouille-gradle-plugin/src/main/kotlin/compat/patrouille/CompatPatrouillePlugin.kt index 6cd8ff7..43b3e01 100644 --- a/compat-patrouille-gradle-plugin/src/main/kotlin/compat/patrouille/CompatPatrouillePlugin.kt +++ b/compat-patrouille-gradle-plugin/src/main/kotlin/compat/patrouille/CompatPatrouillePlugin.kt @@ -1,20 +1,15 @@ package compat.patrouille import compat.patrouille.internal.CompatPatrouilleExtensionImpl -import compat.patrouille.internal.isKmp -import compat.patrouille.internal.kotlinExtensionOrNull -import compat.patrouille.task.registerCheckApiDependenciesTask -import org.gradle.api.Plugin +import gratatouille.wiring.GPlugin import org.gradle.api.Project -import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -class CompatPatrouillePlugin : Plugin { - override fun apply(target: Project) { - target.extensions.create( - CompatPatrouilleExtension::class.java, - "compatPatrouille", - CompatPatrouilleExtensionImpl::class.java, - target - ) - } -} \ No newline at end of file +@GPlugin(id = "com.gradleup.compat.patrouille") +fun plugin(target: Project) { + target.extensions.create( + CompatPatrouilleExtension::class.java, + "compatPatrouille", + CompatPatrouilleExtensionImpl::class.java, + target, + ) +} diff --git a/compat-patrouille-tasks/build.gradle.kts b/compat-patrouille-tasks/build.gradle.kts index fcd1950..26d4255 100644 --- a/compat-patrouille-tasks/build.gradle.kts +++ b/compat-patrouille-tasks/build.gradle.kts @@ -1,22 +1,22 @@ +import com.gradleup.librarian.core.tooling.init.kotlinPluginVersion import com.gradleup.librarian.gradle.Librarian +import com.gradleup.librarian.gradle.configureKotlinCompatibility plugins { id("org.jetbrains.kotlin.jvm") - id("com.gradleup.compat.patrouille") - id("com.gradleup.gratatouille") + id("com.gradleup.gratatouille.tasks") id("com.google.devtools.ksp") } Librarian.module(project) dependencies { - implementation(libs.gratatouille.runtime) implementation(libs.kotlinx.metadata) + implementation(libs.gratatouille.tasks.runtime) } -compatPatrouille { - java(11) -} +// Override the default from Librarian, we want to be able to use the latest Kotlin version here. +configureKotlinCompatibility(kotlinPluginVersion) gratatouille { codeGeneration { diff --git a/compat-patrouille-tasks/src/main/kotlin/compat/patrouille/task/checkApiDependencies.kt b/compat-patrouille-tasks/src/main/kotlin/compat/patrouille/task/checkApiDependencies.kt index 9280745..a9fddc0 100644 --- a/compat-patrouille-tasks/src/main/kotlin/compat/patrouille/task/checkApiDependencies.kt +++ b/compat-patrouille-tasks/src/main/kotlin/compat/patrouille/task/checkApiDependencies.kt @@ -1,8 +1,8 @@ package compat.patrouille.task -import gratatouille.GClasspath -import gratatouille.GOutputFile -import gratatouille.GTask +import gratatouille.tasks.GClasspath +import gratatouille.tasks.GOutputFile +import gratatouille.tasks.GTask import kotlinx.metadata.jvm.JvmMetadataVersion import kotlinx.metadata.jvm.KotlinModuleMetadata import kotlinx.metadata.jvm.UnstableMetadataApi diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6521f73..753a093 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,12 @@ [versions] -gratatouille = "0.0.9" +gratatouille = "0.1.0" [libraries] gradle-api = "dev.gradleplugins:gradle-api:8.0" agp = "com.android.tools.build:gradle:8.2.0" kgp = "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0" -gratatouille-runtime = { module = "com.gradleup.gratatouille:gratatouille-runtime", version.ref = "gratatouille" } +gratatouille-tasks-runtime = { module = "com.gradleup.gratatouille:gratatouille-tasks-runtime", version.ref = "gratatouille" } +gratatouille-wiring-runtime = { module = "com.gradleup.gratatouille:gratatouille-wiring-runtime", version.ref = "gratatouille" } kotlinx-metadata = "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.9.0" [plugins] diff --git a/test-kgp-1-9/build.gradle.kts b/test-kgp-1-9/build.gradle.kts index cb3651c..4cf0a1c 100644 --- a/test-kgp-1-9/build.gradle.kts +++ b/test-kgp-1-9/build.gradle.kts @@ -1,5 +1,6 @@ import cast.cast import com.nfeld.jsonpathkt.kotlinx.resolvePathOrNull +import compat.patrouille.CompatPatrouilleExtension import java.util.zip.ZipInputStream import kotlinx.metadata.jvm.KotlinModuleMetadata import kotlinx.metadata.jvm.UnstableMetadataApi @@ -12,7 +13,6 @@ import org.objectweb.asm.Opcodes plugins { id("org.jetbrains.kotlin.jvm").version("1.9.0") - id("com.gradleup.compat.patrouille") id("maven-publish") } @@ -23,13 +23,16 @@ buildscript { classpath("net.mbonnin.cast:cast:0.0.1") classpath("org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.9.0") classpath("org.ow2.asm:asm:9.8") + classpath("com.gradleup.compat.patrouille:compat-patrouille-gradle-plugin") } } -compatPatrouille { +pluginManager.apply("com.gradleup.compat.patrouille") +extensions.getByType(CompatPatrouilleExtension::class.java).apply { java(11) kotlin("1.9.0") } + abstract class VerifyCompatibility : DefaultTask() { @get:InputFiles abstract val m2Dir: ConfigurableFileCollection diff --git a/tests/build.gradle.kts b/tests/build.gradle.kts index 8901ac1..2d4eddf 100644 --- a/tests/build.gradle.kts +++ b/tests/build.gradle.kts @@ -1,5 +1,10 @@ plugins { alias(libs.plugins.kgp).apply(false) - alias(libs.plugins.compat.patrouille).apply(false) } +buildscript { + dependencies { + classpath("com.gradleup.compat.patrouille:compat-patrouille-gradle-plugin") + } +} +