Make KonanCompileLibraryTask cacheable

Merge-request: KT-MR-11117
Merged-by: Cristian Garcia <Cristian.Garcia-Marin@jetbrains.com>
This commit is contained in:
cristiangarcia
2023-10-23 16:55:14 +00:00
committed by Space Team
parent 29807af9cb
commit cc2280a146
2 changed files with 9 additions and 20 deletions
@@ -8,14 +8,11 @@ package org.jetbrains.kotlin.gradle.plugin.konan
import org.gradle.api.InvalidUserDataException
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.*
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
import org.jetbrains.kotlin.konan.*
import org.jetbrains.kotlin.konan.library.defaultResolver
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl
import org.jetbrains.kotlin.konan.target.Distribution
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.library.SearchPathResolver
@@ -26,14 +23,14 @@ open class KonanLibrariesSpec(
@Internal val project: Project
) {
@InputFiles val files = mutableSetOf<FileCollection>()
@InputFiles @PathSensitive(PathSensitivity.RELATIVE) val files = mutableSetOf<FileCollection>()
@Input val namedKlibs = mutableSetOf<String>()
@Internal val artifacts = mutableListOf<KonanBuildingTask>()
val artifactFiles: List<File>
@InputFiles get() = artifacts.map { it.artifact }
@InputFiles @PathSensitive(PathSensitivity.RELATIVE) get() = artifacts.map { it.artifact }
@Internal val explicitRepos = mutableSetOf<File>()
@@ -5,22 +5,11 @@
package org.jetbrains.kotlin.gradle.plugin.tasks
import groovy.lang.Closure
import org.codehaus.groovy.runtime.GStringImpl
import org.gradle.api.Project
import org.gradle.api.file.ConfigurableFileTree
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.*
import org.gradle.process.CommandLineArgumentProvider
import org.jetbrains.kotlin.konan.library.defaultResolver
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.target.Distribution
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.gradle.plugin.konan.*
import org.jetbrains.kotlin.gradle.plugin.konan.dumpProperties
import org.jetbrains.kotlin.gradle.plugin.konan.environmentVariables
import org.jetbrains.kotlin.gradle.plugin.konan.konanBuildRoot
import org.jetbrains.kotlin.gradle.plugin.konan.targetSubdir
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import java.io.File
/**
@@ -59,14 +48,16 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec {
@Internal get() = srcFiles_.takeIf { !it.isEmpty() } ?: listOf(project.konanDefaultSrcFiles)
val allSources: Collection<FileCollection>
@InputFiles get() = listOf(srcFiles, commonSrcFiles).flatten()
@InputFiles @PathSensitive(PathSensitivity.RELATIVE) get() = listOf(srcFiles, commonSrcFiles).flatten()
private val allSourceFiles: List<File>
get() = allSources
.flatMap { it.files }
.filter { it.name.endsWith(".kt") }
@InputFiles val nativeLibraries = mutableSetOf<FileCollection>()
@InputFiles
@PathSensitive(PathSensitivity.RELATIVE)
val nativeLibraries = mutableSetOf<FileCollection>()
@Input val linkerOpts = mutableListOf<String>()
@@ -388,6 +379,7 @@ open class KonanCompileFrameworkTask: KonanCompileNativeBinary() {
@OutputDirectory get() = super.artifact
}
@CacheableTask
open class KonanCompileLibraryTask: KonanCompileTask() {
override val artifact: File
@Internal get() = destinationDir.resolve(artifactFullName)