Make KonanCompileLibraryTask cacheable
Merge-request: KT-MR-11117 Merged-by: Cristian Garcia <Cristian.Garcia-Marin@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
29807af9cb
commit
cc2280a146
+3
-6
@@ -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>()
|
||||
|
||||
|
||||
+6
-14
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user