diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/powerAssertSimple/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/powerAssertSimple/build.gradle.kts index 89f525b1fb9..13b1ab62735 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/powerAssertSimple/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/powerAssertSimple/build.gradle.kts @@ -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", diff --git a/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradleExtension.kt b/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradleExtension.kt index 93c291b5f81..4c22611962b 100644 --- a/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradleExtension.kt +++ b/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradleExtension.kt @@ -19,7 +19,16 @@ package org.jetbrains.kotlin.powerassert.gradle -open class PowerAssertGradleExtension { - var functions: List = listOf("kotlin.assert") - var excludedSourceSets: List = 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 = objectFactory.listProperty(String::class.java).convention(listOf("kotlin.assert")) + + val excludedSourceSets: ListProperty = objectFactory.listProperty(String::class.java).convention(emptyList()) } diff --git a/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradlePlugin.kt b/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradlePlugin.kt index 5a310311b41..7088bb1a9b3 100644 --- a/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradlePlugin.kt +++ b/libraries/tools/kotlin-power-assert/src/common/kotlin/org/jetbrains/kotlin/powerassert/gradle/PowerAssertGradlePlugin.kt @@ -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> { 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) } }