Drop gradleKotlinDsl dependency for KGP
This dependency brings gradleApi as a transitive dependency, which leads to false-positive deprecation errors in plugin variants. ^KT-47047 In Progress
This commit is contained in:
@@ -32,7 +32,6 @@ dependencies {
|
||||
commonApi(project(":kotlin-gradle-plugin-model"))
|
||||
commonApi(project(":kotlin-tooling-core"))
|
||||
|
||||
commonCompileOnly(gradleKotlinDsl())
|
||||
commonCompileOnly(project(":compiler"))
|
||||
commonCompileOnly(project(":compiler:incremental-compilation-impl"))
|
||||
commonCompileOnly(project(":daemon-common"))
|
||||
|
||||
+1
-2
@@ -11,13 +11,12 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.attributes.Category
|
||||
import org.gradle.api.attributes.LibraryElements
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.gradle.kotlin.dsl.named
|
||||
import org.gradle.tooling.model.build.JavaEnvironment
|
||||
import org.jetbrains.kotlin.commonizer.CliCommonizer
|
||||
import org.jetbrains.kotlin.gradle.internal.KOTLIN_MODULE_GROUP
|
||||
import org.jetbrains.kotlin.gradle.plugin.KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.gradle.plugin.usageByName
|
||||
import org.jetbrains.kotlin.gradle.utils.named
|
||||
|
||||
private const val KOTLIN_KLIB_COMMONIZER_EMBEDDABLE = "kotlin-klib-commonizer-embeddable"
|
||||
|
||||
|
||||
+2
-2
@@ -13,7 +13,6 @@ import org.gradle.api.provider.MapProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.ProviderFactory
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.kotlin.dsl.listProperty
|
||||
import org.gradle.process.CommandLineArgumentProvider
|
||||
import org.gradle.work.InputChanges
|
||||
import org.gradle.workers.IsolationMode
|
||||
@@ -26,6 +25,7 @@ import org.jetbrains.kotlin.gradle.internal.kapt.incremental.KaptIncrementalChan
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kapt
|
||||
import org.jetbrains.kotlin.gradle.tasks.toSingleCompilerPluginOptions
|
||||
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
|
||||
import org.jetbrains.kotlin.gradle.utils.listPropertyWithConvention
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.File
|
||||
@@ -59,7 +59,7 @@ abstract class KaptWithoutKotlincTask @Inject constructor(
|
||||
internal val projectDir = project.projectDir
|
||||
|
||||
@get:Input
|
||||
val kaptProcessJvmArgs: ListProperty<String> = objectFactory.listProperty<String>().convention(emptyList())
|
||||
val kaptProcessJvmArgs: ListProperty<String> = objectFactory.listPropertyWithConvention(emptyList())
|
||||
|
||||
private fun getAnnotationProcessorOptions(): Map<String, String> {
|
||||
val result = mutableMapOf<String, String>()
|
||||
|
||||
-1
@@ -14,7 +14,6 @@ import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.api.tasks.SourceSet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
import org.jetbrains.kotlin.gradle.dsl.*
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
|
||||
+1
-1
@@ -16,7 +16,6 @@ import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.file.ConfigurableFileCollection
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
|
||||
@@ -24,6 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.publishedConfigurationName
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.utils.filesProvider
|
||||
import org.jetbrains.kotlin.gradle.utils.withType
|
||||
import org.jetbrains.kotlin.project.model.KotlinAttributeKey
|
||||
import org.jetbrains.kotlin.project.model.KpmModuleDependency
|
||||
import org.jetbrains.kotlin.tooling.core.MutableExtras
|
||||
|
||||
+1
-1
@@ -9,10 +9,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
import org.gradle.api.tasks.SourceSet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.compile.JavaCompile
|
||||
import org.gradle.kotlin.dsl.named
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.utils.named
|
||||
|
||||
class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions>(
|
||||
target: KotlinWithJavaTarget<KotlinOptionsType>,
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.utils
|
||||
|
||||
import org.gradle.api.DomainObjectCollection
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.tasks.TaskCollection
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
|
||||
internal inline fun <reified S> DomainObjectCollection<in S>.withType(): DomainObjectCollection<S> =
|
||||
withType(S::class.java)
|
||||
|
||||
|
||||
@Suppress("extension_shadowed_by_member", "UNCHECKED_CAST")
|
||||
inline fun <reified T : Task> TaskCollection<out Task>.named(name: String): TaskProvider<T> =
|
||||
(this as TaskCollection<T>).named(name, T::class.java)
|
||||
|
||||
-1
@@ -12,7 +12,6 @@ import org.gradle.api.attributes.Category
|
||||
import org.gradle.api.attributes.LibraryElements
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.gradle.api.attributes.plugin.GradlePluginApiVersion
|
||||
import org.gradle.kotlin.dsl.named
|
||||
import org.gradle.util.GradleVersion
|
||||
import java.lang.RuntimeException
|
||||
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.utils
|
||||
|
||||
import org.gradle.api.Named
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
|
||||
internal inline fun <reified T : Named> ObjectFactory.named(name: String): T =
|
||||
named(T::class.java, name)
|
||||
+8
-16
@@ -14,10 +14,7 @@ import org.gradle.api.provider.ListProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.provider.SetProperty
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.kotlin.dsl.setProperty
|
||||
import java.io.File
|
||||
import kotlin.properties.ReadOnlyProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
internal operator fun <T> Provider<T>.getValue(thisRef: Any?, property: KProperty<*>) = get()
|
||||
@@ -26,16 +23,6 @@ internal operator fun <T> Property<T>.setValue(thisRef: Any?, property: KPropert
|
||||
set(value)
|
||||
}
|
||||
|
||||
private class OptionalProviderDelegate<T>(private val provider: Provider<T?>) : ReadOnlyProperty<Any?, T?> {
|
||||
override fun getValue(thisRef: Any?, property: KProperty<*>): T? =
|
||||
if (provider.isPresent)
|
||||
provider.get()
|
||||
else null
|
||||
}
|
||||
|
||||
internal fun <T> Project.optionalProvider(initialize: () -> T?): ReadOnlyProperty<Any?, T?> =
|
||||
OptionalProviderDelegate(provider(initialize))
|
||||
|
||||
internal fun <T : Any> Project.newProperty(initialize: (() -> T)? = null): Property<T> =
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
(project.objects.property(Any::class.java) as Property<T>).apply {
|
||||
@@ -45,6 +32,10 @@ internal fun <T : Any> Project.newProperty(initialize: (() -> T)? = null): Prope
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.property() = property(T::class.java)
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.listProperty() = listProperty(T::class.java)
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.setProperty() = setProperty(T::class.java)
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.property(initialValue: T) = property<T>().value(initialValue)
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.property(initialValue: Provider<T>) = property<T>().value(initialValue)
|
||||
@@ -65,6 +56,10 @@ internal inline fun <reified T : Any?> ObjectFactory.propertyWithConvention(
|
||||
conventionValue: T
|
||||
) = property<T>().convention(conventionValue)
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.listPropertyWithConvention(
|
||||
conventionValue: Iterable<T>
|
||||
) = listProperty<T>().convention(conventionValue)
|
||||
|
||||
internal inline fun <reified T : Any?> ObjectFactory.providerWithLazyConvention(
|
||||
noinline lazyConventionValue: () -> T
|
||||
) = property(lazyConventionValue).map { it.invoke() }
|
||||
@@ -78,9 +73,6 @@ internal inline fun <reified T : Any> ObjectFactory.propertyWithNewInstance(
|
||||
vararg parameters: Any
|
||||
) = propertyWithConvention(newInstance(T::class.java, *parameters))
|
||||
|
||||
internal inline fun <reified T : Any> ObjectFactory.propertyWithNewInstance() =
|
||||
propertyWithConvention(newInstance<T>())
|
||||
|
||||
internal fun <PropType : Any?, T : Property<PropType>> T.chainedFinalizeValueOnRead(): T =
|
||||
apply {
|
||||
finalizeValueOnRead()
|
||||
|
||||
+24
-4
@@ -6,9 +6,9 @@
|
||||
package org.jetbrains.kotlin.gradle.utils
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.provider.ClassPathModeExceptionCollector
|
||||
import org.gradle.kotlin.dsl.provider.inLenientMode
|
||||
import org.gradle.kotlin.dsl.support.serviceOf
|
||||
import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters
|
||||
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||
|
||||
/**
|
||||
@@ -58,13 +58,33 @@ import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||
*/
|
||||
internal inline fun Project.runProjectConfigurationHealthCheck(check: Project.() -> Unit) {
|
||||
/* Running configuration checks on a failed project will only lead to false positive error messages */
|
||||
if (state.failure != null || (inLenientMode() && serviceOf<ClassPathModeExceptionCollector>().exceptions.isNotEmpty())) {
|
||||
if (state.failure != null || (inLenientMode() && syncExceptionsAreNotEmpty())) {
|
||||
return
|
||||
}
|
||||
|
||||
check()
|
||||
}
|
||||
|
||||
// ClassPathModeExceptionCollector is available only via 'gradleKotlinDsl()' dependency which brings in full Gradle jar
|
||||
private fun Project.syncExceptionsAreNotEmpty(): Boolean {
|
||||
val classPathModeExceptionCollectionClass = Class.forName("org.gradle.kotlin.dsl.provider.ClassPathModeExceptionCollector")
|
||||
val exceptionCollector = (this as ProjectInternal).services.get(classPathModeExceptionCollectionClass)
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val exceptionsList = classPathModeExceptionCollectionClass.methods
|
||||
.first { it.name == "getExceptions" }
|
||||
.invoke(exceptionCollector) as List<Exception>
|
||||
|
||||
return exceptionsList.isNotEmpty()
|
||||
}
|
||||
|
||||
private val Project.providerModeSystemPropertyValue: Provider<String>
|
||||
get() = providers
|
||||
.systemProperty(KotlinDslModelsParameters.PROVIDER_MODE_SYSTEM_PROPERTY_NAME)
|
||||
.forUseAtConfigurationTime()
|
||||
|
||||
private fun Project.inLenientMode() =
|
||||
providerModeSystemPropertyValue.orNull == KotlinDslModelsParameters.CLASSPATH_MODE_SYSTEM_PROPERTY_VALUE
|
||||
|
||||
/**
|
||||
* Convenience function for
|
||||
* ```kotlin
|
||||
|
||||
Reference in New Issue
Block a user