Skip to content

Commit c00ca4b

Browse files
authored
Fixed support for Gradle < 8.2 (#265)
Fixes #263
1 parent 14ebd02 commit c00ca4b

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import org.gradle.api.artifacts.Configuration
1111
import org.gradle.api.plugins.*
1212
import org.gradle.api.provider.*
1313
import org.gradle.api.tasks.*
14+
import org.gradle.util.GradleVersion
1415
import org.jetbrains.kotlin.gradle.dsl.*
1516
import org.jetbrains.kotlin.gradle.plugin.*
1617
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
@@ -659,7 +660,7 @@ private fun Project.prepareKlibValidationClasspath(): NamedDomainObjectProvider<
659660
it.description = "Runtime classpath for running binary-compatibility-validator."
660661
it.isCanBeResolved = false
661662
it.isCanBeConsumed = false
662-
it.isCanBeDeclared = true
663+
it.isCanBeDeclaredCompat = true
663664
it.isVisible = false
664665
}
665666

@@ -669,7 +670,7 @@ private fun Project.prepareKlibValidationClasspath(): NamedDomainObjectProvider<
669670
it.description = "Resolve the runtime classpath for running binary-compatibility-validator."
670671
it.isCanBeResolved = true
671672
it.isCanBeConsumed = false
672-
it.isCanBeDeclared = false
673+
it.isCanBeDeclaredCompat = false
673674
it.isVisible = false
674675
it.extendsFrom(dependencyConfiguration)
675676
}
@@ -689,7 +690,7 @@ private fun Project.prepareJvmValidationClasspath(): NamedDomainObjectProvider<C
689690
it.description = "Runtime classpath for running binary-compatibility-validator."
690691
it.isCanBeResolved = false
691692
it.isCanBeConsumed = false
692-
it.isCanBeDeclared = true
693+
it.isCanBeDeclaredCompat = true
693694
it.isVisible = false
694695
}
695696

@@ -701,7 +702,7 @@ private fun Project.prepareJvmValidationClasspath(): NamedDomainObjectProvider<C
701702
it.description = "Resolve the runtime classpath for running binary-compatibility-validator."
702703
it.isCanBeResolved = true
703704
it.isCanBeConsumed = false
704-
it.isCanBeDeclared = false
705+
it.isCanBeDeclaredCompat = false
705706
it.isVisible = false
706707
it.extendsFrom(dependencyConfiguration)
707708
}
@@ -757,3 +758,16 @@ private fun Project.readVersion(): String? {
757758

758759
return version
759760
}
761+
762+
private val Gradle820 = GradleVersion.version("8.2")
763+
764+
/**
765+
* [Configuration.isCanBeDeclared] is introduced in Gradle 8.2, we need to compat older Gradle users.
766+
*/
767+
private var Configuration.isCanBeDeclaredCompat: Boolean
768+
get() = if (GradleVersion.current() >= Gradle820) isCanBeDeclared else true
769+
set(value) {
770+
if (GradleVersion.current() >= Gradle820) {
771+
isCanBeDeclared = value
772+
}
773+
}

0 commit comments

Comments
 (0)