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.InvalidUserDataException
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.tasks.Input
|
import org.gradle.api.tasks.*
|
||||||
import org.gradle.api.tasks.InputFiles
|
|
||||||
import org.gradle.api.tasks.Internal
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
||||||
import org.jetbrains.kotlin.konan.*
|
import org.jetbrains.kotlin.konan.*
|
||||||
import org.jetbrains.kotlin.konan.library.defaultResolver
|
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.Distribution
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.library.SearchPathResolver
|
import org.jetbrains.kotlin.library.SearchPathResolver
|
||||||
@@ -26,14 +23,14 @@ open class KonanLibrariesSpec(
|
|||||||
@Internal val project: Project
|
@Internal val project: Project
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@InputFiles val files = mutableSetOf<FileCollection>()
|
@InputFiles @PathSensitive(PathSensitivity.RELATIVE) val files = mutableSetOf<FileCollection>()
|
||||||
|
|
||||||
@Input val namedKlibs = mutableSetOf<String>()
|
@Input val namedKlibs = mutableSetOf<String>()
|
||||||
|
|
||||||
@Internal val artifacts = mutableListOf<KonanBuildingTask>()
|
@Internal val artifacts = mutableListOf<KonanBuildingTask>()
|
||||||
|
|
||||||
val artifactFiles: List<File>
|
val artifactFiles: List<File>
|
||||||
@InputFiles get() = artifacts.map { it.artifact }
|
@InputFiles @PathSensitive(PathSensitivity.RELATIVE) get() = artifacts.map { it.artifact }
|
||||||
|
|
||||||
@Internal val explicitRepos = mutableSetOf<File>()
|
@Internal val explicitRepos = mutableSetOf<File>()
|
||||||
|
|
||||||
|
|||||||
+6
-14
@@ -5,22 +5,11 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.tasks
|
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.file.FileCollection
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.gradle.process.CommandLineArgumentProvider
|
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.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.konan.dumpProperties
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
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 java.io.File
|
import java.io.File
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -59,14 +48,16 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec {
|
|||||||
@Internal get() = srcFiles_.takeIf { !it.isEmpty() } ?: listOf(project.konanDefaultSrcFiles)
|
@Internal get() = srcFiles_.takeIf { !it.isEmpty() } ?: listOf(project.konanDefaultSrcFiles)
|
||||||
|
|
||||||
val allSources: Collection<FileCollection>
|
val allSources: Collection<FileCollection>
|
||||||
@InputFiles get() = listOf(srcFiles, commonSrcFiles).flatten()
|
@InputFiles @PathSensitive(PathSensitivity.RELATIVE) get() = listOf(srcFiles, commonSrcFiles).flatten()
|
||||||
|
|
||||||
private val allSourceFiles: List<File>
|
private val allSourceFiles: List<File>
|
||||||
get() = allSources
|
get() = allSources
|
||||||
.flatMap { it.files }
|
.flatMap { it.files }
|
||||||
.filter { it.name.endsWith(".kt") }
|
.filter { it.name.endsWith(".kt") }
|
||||||
|
|
||||||
@InputFiles val nativeLibraries = mutableSetOf<FileCollection>()
|
@InputFiles
|
||||||
|
@PathSensitive(PathSensitivity.RELATIVE)
|
||||||
|
val nativeLibraries = mutableSetOf<FileCollection>()
|
||||||
|
|
||||||
@Input val linkerOpts = mutableListOf<String>()
|
@Input val linkerOpts = mutableListOf<String>()
|
||||||
|
|
||||||
@@ -388,6 +379,7 @@ open class KonanCompileFrameworkTask: KonanCompileNativeBinary() {
|
|||||||
@OutputDirectory get() = super.artifact
|
@OutputDirectory get() = super.artifact
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@CacheableTask
|
||||||
open class KonanCompileLibraryTask: KonanCompileTask() {
|
open class KonanCompileLibraryTask: KonanCompileTask() {
|
||||||
override val artifact: File
|
override val artifact: File
|
||||||
@Internal get() = destinationDir.resolve(artifactFullName)
|
@Internal get() = destinationDir.resolve(artifactFullName)
|
||||||
|
|||||||
Reference in New Issue
Block a user