[Minor] Add commonizer classpath to HierarchicalNativeDistributionCommonizerTask

This commit is contained in:
sebastian.sellmair
2021-04-01 14:12:31 +02:00
parent 88a913c7dc
commit 10692b5b7c
4 changed files with 21 additions and 14 deletions
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.kotlinSourceSetsIncludingDefault
import org.jetbrains.kotlin.gradle.plugin.sources.resolveAllDependsOnSourceSets
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerTask.CInteropGist
import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
import org.jetbrains.kotlin.gradle.utils.fileProvider
import org.jetbrains.kotlin.gradle.utils.filesProvider
import org.jetbrains.kotlin.konan.target.KonanTarget
import java.io.File
@@ -180,7 +180,7 @@ private fun CInteropProcess.toGist(): CInteropGist {
konanTarget = konanTarget,
sourceSets = project.provider { settings.compilation.kotlinSourceSetsIncludingDefault },
libraryFile = outputFileProvider,
dependencies = project.fileProvider { settings.dependencyFiles }.filter(File::isValidDependency)
dependencies = project.filesProvider { settings.dependencyFiles }.filter(File::isValidDependency)
)
}
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.gradle.targets.native.internal
import org.gradle.api.Project
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.commonizer.HierarchicalCommonizerOutputLayout
import org.jetbrains.kotlin.commonizer.KonanDistribution
@@ -16,7 +15,7 @@ import org.jetbrains.kotlin.compilerRunner.konanHome
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet
import java.io.File
import org.jetbrains.kotlin.gradle.utils.filesProvider
internal fun Project.setUpHierarchicalKotlinNativePlatformDependencies() {
val task = commonizeNativeDistributionHierarchicalTask?.get() ?: return
@@ -31,8 +30,8 @@ internal fun Project.setUpHierarchicalKotlinNativePlatformDependencies() {
val rootOutputDirectory = task.getRootOutputDirectory(rootTarget)
val targetOutputDirectory = HierarchicalCommonizerOutputLayout.getTargetDirectory(rootOutputDirectory, target)
val dependencies = project.lazyFiles { targetOutputDirectory.listFiles().orEmpty().toList() }.builtBy(task)
val stdlib = project.lazyFiles { listOf(konanDistribution.stdlib) }
val dependencies = project.filesProvider { targetOutputDirectory.listFiles().orEmpty().toList() }.builtBy(task)
val stdlib = project.filesProvider { listOf(konanDistribution.stdlib) }
addDependencies(sourceSet, dependencies)
addDependencies(sourceSet, stdlib)
}
@@ -45,10 +44,5 @@ private fun Project.addDependencies(sourceSet: KotlinSourceSet, libraries: FileC
dependencies.add(sourceSet.implementationMetadataConfigurationName, libraries)
}
private fun Project.lazyFiles(provider: () -> Iterable<File>): ConfigurableFileCollection {
return project.files(project.provider { provider() })
}
private val Project.konanDistribution: KonanDistribution
get() = KonanDistribution(project.file(konanHome))
@@ -50,6 +50,19 @@ internal open class HierarchicalNativeDistributionCommonizerTask : DefaultTask()
val outputDirectories: Set<File>
get() = rootCommonizerTargets.map(::getRootOutputDirectory).toSet()
@get:Internal
internal val commonizerRunner = KotlinNativeCommonizerToolRunner(project)
@get:Classpath
@Suppress("unused") // Only for up-to-date checker. The directory with the original platform libs.
internal val commonizerClasspath: Set<File>
get() = commonizerRunner.classpath
@get:Input
@Suppress("unused") // Only for up-to-date checker. The directory with the original platform libs.
internal val commonizerJvmArgs: List<String>
get() = commonizerRunner.getCustomJvmArgs()
internal fun getRootOutputDirectory(target: SharedCommonizerTarget): File {
val kotlinVersion = checkNotNull(project.getKotlinPluginVersion()) { "Missing Kotlin Plugin version" }
@@ -69,7 +82,7 @@ internal open class HierarchicalNativeDistributionCommonizerTask : DefaultTask()
protected fun run() {
for (target in rootCommonizerTargets) {
getRootOutputDirectory(target).deleteRecursively()
KotlinNativeCommonizerToolRunner(project).run(getCommandLineArguments(target))
commonizerRunner.run(getCommandLineArguments(target))
}
}
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.gradle.utils
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
@@ -49,6 +49,6 @@ internal fun Project.newFileProperty(initialize: (() -> File)? = null): RegularF
}
}
internal fun Project.fileProvider(provider: () -> Any) : FileCollection {
internal fun Project.filesProvider(provider: () -> Any) : ConfigurableFileCollection {
return project.files(project.provider(provider))
}