[PowerAssert] Integrate with build

^KT-63617 Fixed
This commit is contained in:
Brian Norman
2023-11-17 10:24:24 -06:00
committed by Space Team
parent c3a60b127e
commit aa34282efb
24 changed files with 655 additions and 30 deletions
@@ -21,14 +21,17 @@ package org.jetbrains.kotlin.powerassert.gradle
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerPluginSupportPlugin
import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact
import org.jetbrains.kotlin.gradle.plugin.SubpluginOption
import org.jetbrains.kotlin.gradle.plugin.*
class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
override fun apply(target: Project): Unit = with(target) {
extensions.create("kotlinPowerAssert", PowerAssertGradleExtension::class.java)
companion object {
private const val POWER_ASSERT_ARTIFACT_NAME = "kotlin-power-assert-compiler-plugin-embeddable"
private const val FUNCTION_ARG_NAME = "function"
}
override fun apply(target: Project) {
target.extensions.create("powerAssert", PowerAssertGradleExtension::class.java)
}
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean {
@@ -37,14 +40,6 @@ class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
return extension.excludedSourceSets.none { it == kotlinCompilation.defaultSourceSet.name }
}
override fun getCompilerPluginId(): String = "com.bnorm.kotlin-power-assert"
override fun getPluginArtifact(): SubpluginArtifact = SubpluginArtifact(
groupId = BuildConfig.PLUGIN_GROUP_ID,
artifactId = BuildConfig.PLUGIN_ARTIFACT_ID,
version = BuildConfig.PLUGIN_VERSION,
)
override fun applyToCompilation(
kotlinCompilation: KotlinCompilation<*>,
): Provider<List<SubpluginOption>> {
@@ -52,8 +47,12 @@ class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
val extension = project.extensions.getByType(PowerAssertGradleExtension::class.java)
return project.provider {
extension.functions.map {
SubpluginOption(key = "function", value = it)
SubpluginOption(key = FUNCTION_ARG_NAME, value = it)
}
}
}
override fun getCompilerPluginId(): String = "org.jetbrains.kotlin.powerassert"
override fun getPluginArtifact(): SubpluginArtifact =
JetBrainsSubpluginArtifact(POWER_ASSERT_ARTIFACT_NAME)
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.powerassert.gradle.PowerAssertGradlePlugin