Add TaskProvider property for Kotlin compile tasks in compilations
This commit is contained in:
+3
@@ -11,6 +11,7 @@ import org.gradle.api.attributes.AttributeContainer
|
|||||||
import org.gradle.api.attributes.HasAttributes
|
import org.gradle.api.attributes.HasAttributes
|
||||||
import org.gradle.api.file.ConfigurableFileCollection
|
import org.gradle.api.file.ConfigurableFileCollection
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.util.ConfigureUtil
|
import org.gradle.util.ConfigureUtil
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||||
@@ -52,6 +53,8 @@ interface KotlinCompilation<out T : KotlinCommonOptions> : Named, HasAttributes,
|
|||||||
|
|
||||||
val compileKotlinTask: KotlinCompile<T>
|
val compileKotlinTask: KotlinCompile<T>
|
||||||
|
|
||||||
|
val compileKotlinTaskProvider: TaskProvider<out KotlinCompile<T>>
|
||||||
|
|
||||||
val kotlinOptions: T
|
val kotlinOptions: T
|
||||||
|
|
||||||
fun kotlinOptions(configure: T.() -> Unit)
|
fun kotlinOptions(configure: T.() -> Unit)
|
||||||
|
|||||||
+3
-2
@@ -52,9 +52,10 @@ abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
|
|||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
override val compileKotlinTask: KotlinCompile<T>
|
override val compileKotlinTask: KotlinCompile<T>
|
||||||
get() = (target.project.tasks.getByName(compileKotlinTaskName) as KotlinCompile<T>)
|
get() = compileKotlinTaskProvider.get()
|
||||||
|
|
||||||
val compileKotlinTaskHolder: TaskProvider<KotlinCompile<T>>
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override val compileKotlinTaskProvider: TaskProvider<out KotlinCompile<T>>
|
||||||
get() = target.project.locateTask(compileKotlinTaskName)!!
|
get() = target.project.locateTask(compileKotlinTaskName)!!
|
||||||
|
|
||||||
// Don't declare this property in the constructor to avoid NPE
|
// Don't declare this property in the constructor to avoid NPE
|
||||||
|
|||||||
+5
@@ -8,6 +8,7 @@
|
|||||||
// Old package for compatibility
|
// Old package for compatibility
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.util.WrapUtil
|
import org.gradle.util.WrapUtil
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
@@ -49,6 +50,10 @@ open class KotlinJsCompilation(
|
|||||||
override val compileKotlinTask: Kotlin2JsCompile
|
override val compileKotlinTask: Kotlin2JsCompile
|
||||||
get() = super.compileKotlinTask as Kotlin2JsCompile
|
get() = super.compileKotlinTask as Kotlin2JsCompile
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override val compileKotlinTaskProvider: TaskProvider<out Kotlin2JsCompile>
|
||||||
|
get() = super.compileKotlinTaskProvider as TaskProvider<out Kotlin2JsCompile>
|
||||||
|
|
||||||
internal val packageJsonHandlers = mutableListOf<PackageJson.() -> Unit>()
|
internal val packageJsonHandlers = mutableListOf<PackageJson.() -> Unit>()
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
|
|||||||
+5
@@ -23,6 +23,11 @@ import org.jetbrains.kotlin.gradle.plugin.getTestedVariantData
|
|||||||
override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override val compileKotlinTaskProvider: TaskProvider<out org.jetbrains.kotlin.gradle.tasks.KotlinCompile>
|
||||||
|
get() = super.compileKotlinTaskProvider as TaskProvider<out org.jetbrains.kotlin.gradle.tasks.KotlinCompile>
|
||||||
|
|
||||||
|
|
||||||
@Suppress("UnstableApiUsage")
|
@Suppress("UnstableApiUsage")
|
||||||
internal val testedVariantArtifacts: Property<FileCollection> = target.project.objects.property(FileCollection::class.java)
|
internal val testedVariantArtifacts: Property<FileCollection> = target.project.objects.property(FileCollection::class.java)
|
||||||
|
|
||||||
|
|||||||
+4
@@ -17,6 +17,10 @@ open class KotlinJvmCompilation(
|
|||||||
override val processResourcesTaskName: String
|
override val processResourcesTaskName: String
|
||||||
get() = disambiguateName("processResources")
|
get() = disambiguateName("processResources")
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override val compileKotlinTaskProvider: TaskProvider<out org.jetbrains.kotlin.gradle.tasks.KotlinCompile>
|
||||||
|
get() = super.compileKotlinTaskProvider as TaskProvider<out org.jetbrains.kotlin.gradle.tasks.KotlinCompile>
|
||||||
|
|
||||||
override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
}
|
}
|
||||||
+2
-2
@@ -76,7 +76,7 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
// Clear the dependencies of the compilation so that they don't take time resolving during task graph construction:
|
// Clear the dependencies of the compilation so that they don't take time resolving during task graph construction:
|
||||||
compileDependencyFiles = target.project.files()
|
compileDependencyFiles = target.project.files()
|
||||||
}
|
}
|
||||||
compileKotlinTaskHolder.configure { it.onlyIf { target.project.isCompatibilityMetadataVariantEnabled } }
|
compileKotlinTaskProvider.configure { it.onlyIf { target.project.isCompatibilityMetadataVariantEnabled } }
|
||||||
}
|
}
|
||||||
|
|
||||||
createMergedAllSourceSetsConfigurations(target)
|
createMergedAllSourceSetsConfigurations(target)
|
||||||
@@ -280,7 +280,7 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
} else {
|
} else {
|
||||||
if (platformCompilations.filterIsInstance<KotlinNativeCompilation>().none { it.konanTarget.enabledOnCurrentHost }) {
|
if (platformCompilations.filterIsInstance<KotlinNativeCompilation>().none { it.konanTarget.enabledOnCurrentHost }) {
|
||||||
// Then we don't have any platform module to put this compiled source set to, so disable the compilation task:
|
// Then we don't have any platform module to put this compiled source set to, so disable the compilation task:
|
||||||
compileKotlinTaskHolder.configure { it.enabled = false }
|
compileKotlinTaskProvider.configure { it.enabled = false }
|
||||||
// Also clear the dependency files (classpath) of the compilation so that the host-specific dependencies are
|
// Also clear the dependency files (classpath) of the compilation so that the host-specific dependencies are
|
||||||
// not resolved:
|
// not resolved:
|
||||||
compileDependencyFiles = project.files()
|
compileDependencyFiles = project.files()
|
||||||
|
|||||||
+5
-1
@@ -13,6 +13,7 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.file.ConfigurableFileCollection
|
import org.gradle.api.file.ConfigurableFileCollection
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.util.ConfigureUtil
|
import org.gradle.util.ConfigureUtil
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
@@ -23,7 +24,6 @@ import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations
|
import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations
|
||||||
import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet
|
import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
|
||||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
@@ -42,6 +42,10 @@ abstract class AbstractKotlinNativeCompilation(
|
|||||||
get() = super.compileKotlinTask as KotlinNativeCompile
|
get() = super.compileKotlinTask as KotlinNativeCompile
|
||||||
|
|
||||||
// A collection containing all source sets used by this compilation
|
// A collection containing all source sets used by this compilation
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override val compileKotlinTaskProvider: TaskProvider<out KotlinNativeCompile>
|
||||||
|
get() = super.compileKotlinTaskProvider as TaskProvider<out KotlinNativeCompile>
|
||||||
|
|
||||||
// (taking into account dependencies between source sets). Used by both compilation
|
// (taking into account dependencies between source sets). Used by both compilation
|
||||||
// and linking tasks. Unlike kotlinSourceSets, includes dependency source sets.
|
// and linking tasks. Unlike kotlinSourceSets, includes dependency source sets.
|
||||||
// TODO: Move into the compilation task when the linking task does klib linking instead of compilation.
|
// TODO: Move into the compilation task when the linking task does klib linking instead of compilation.
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@ import groovy.lang.Closure
|
|||||||
import org.gradle.api.attributes.AttributeContainer
|
import org.gradle.api.attributes.AttributeContainer
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
@@ -297,7 +298,7 @@ class MockKotlinCompilation(
|
|||||||
|
|
||||||
//region Not implemented
|
//region Not implemented
|
||||||
override val target: KotlinTarget get() = throw UnsupportedOperationException()
|
override val target: KotlinTarget get() = throw UnsupportedOperationException()
|
||||||
|
override val compileKotlinTaskProvider: TaskProvider<out KotlinCompile<KotlinCommonOptions>> get() = throw UnsupportedOperationException()
|
||||||
override fun getAttributes(): AttributeContainer = throw UnsupportedOperationException()
|
override fun getAttributes(): AttributeContainer = throw UnsupportedOperationException()
|
||||||
override fun dependencies(configure: KotlinDependencyHandler.() -> Unit) = throw UnsupportedOperationException()
|
override fun dependencies(configure: KotlinDependencyHandler.() -> Unit) = throw UnsupportedOperationException()
|
||||||
override fun dependencies(configureClosure: Closure<Any?>) = throw UnsupportedOperationException()
|
override fun dependencies(configureClosure: Closure<Any?>) = throw UnsupportedOperationException()
|
||||||
|
|||||||
Reference in New Issue
Block a user