[PowerAssert] Update Gradle extension to be more idiomatic
Instead of using raw List types in the Gradle extension, ListProperty should be used instead to make it more Gradle idiomatic. Also marking the extension and all properties as experimental to allow easier changing in the future. ^KT-65952 Fixed
This commit is contained in:
+2
-3
@@ -34,15 +34,14 @@ kotlin {
|
||||
}
|
||||
|
||||
powerAssert {
|
||||
functions = listOf(
|
||||
"kotlin.assert",
|
||||
functions.addAll(
|
||||
"kotlin.test.assertTrue",
|
||||
"kotlin.require",
|
||||
"sample.AssertScope.assert",
|
||||
"sample.assert",
|
||||
"sample.dbg"
|
||||
)
|
||||
excludedSourceSets = listOf(
|
||||
excludedSourceSets.addAll(
|
||||
"commonMain",
|
||||
"jvmMain",
|
||||
"jsMain",
|
||||
|
||||
+12
-3
@@ -19,7 +19,16 @@
|
||||
|
||||
package org.jetbrains.kotlin.powerassert.gradle
|
||||
|
||||
open class PowerAssertGradleExtension {
|
||||
var functions: List<String> = listOf("kotlin.assert")
|
||||
var excludedSourceSets: List<String> = listOf()
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
import org.gradle.api.provider.ListProperty
|
||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import javax.inject.Inject
|
||||
|
||||
@ExperimentalKotlinGradlePluginApi
|
||||
abstract class PowerAssertGradleExtension @Inject constructor(
|
||||
objectFactory: ObjectFactory,
|
||||
) {
|
||||
val functions: ListProperty<String> = objectFactory.listProperty(String::class.java).convention(listOf("kotlin.assert"))
|
||||
|
||||
val excludedSourceSets: ListProperty<String> = objectFactory.listProperty(String::class.java).convention(emptyList())
|
||||
}
|
||||
|
||||
+5
-3
@@ -21,8 +21,10 @@ package org.jetbrains.kotlin.powerassert.gradle
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
|
||||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||
class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
|
||||
companion object {
|
||||
private const val POWER_ASSERT_ARTIFACT_NAME = "kotlin-power-assert-compiler-plugin-embeddable"
|
||||
@@ -37,7 +39,7 @@ class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
|
||||
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean {
|
||||
val project = kotlinCompilation.target.project
|
||||
val extension = project.extensions.getByType(PowerAssertGradleExtension::class.java)
|
||||
return extension.excludedSourceSets.none { it == kotlinCompilation.defaultSourceSet.name }
|
||||
return extension.excludedSourceSets.get().none { it == kotlinCompilation.defaultSourceSet.name }
|
||||
}
|
||||
|
||||
override fun applyToCompilation(
|
||||
@@ -45,8 +47,8 @@ class PowerAssertGradlePlugin : KotlinCompilerPluginSupportPlugin {
|
||||
): Provider<List<SubpluginOption>> {
|
||||
val project = kotlinCompilation.target.project
|
||||
val extension = project.extensions.getByType(PowerAssertGradleExtension::class.java)
|
||||
return project.provider {
|
||||
extension.functions.map {
|
||||
return extension.functions.map { functions ->
|
||||
functions.map {
|
||||
SubpluginOption(key = FUNCTION_ARG_NAME, value = it)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user