From 66a77c7ec2c15da59079e63f26d1cfde9be7bfe4 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Thu, 24 Aug 2017 02:42:24 +0300 Subject: [PATCH] Fix Gradle IC cache version checking --- .../org/jetbrains/kotlin/incremental/CacheVersion.kt | 8 ++++---- .../org/jetbrains/kotlin/daemon/CompileServiceImpl.kt | 10 ++++++++-- .../org/jetbrains/kotlin/incremental/cacheVersions.kt | 7 +++---- .../kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 9 +++++---- .../jetbrains/kotlin/incremental/gradleCacheVersion.kt | 4 ++-- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt b/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt index 724ce00e06a..921505b581d 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt @@ -95,18 +95,18 @@ class CacheVersion( } } -fun normalCacheVersion(dataRoot: File): CacheVersion = +fun normalCacheVersion(dataRoot: File, enabled: Boolean? = null): CacheVersion = CacheVersion(ownVersion = NORMAL_VERSION, versionFile = File(dataRoot, NORMAL_VERSION_FILE_NAME), whenVersionChanged = CacheVersion.Action.REBUILD_CHUNK, whenTurnedOn = CacheVersion.Action.REBUILD_CHUNK, whenTurnedOff = CacheVersion.Action.CLEAN_NORMAL_CACHES, - isEnabled = { IncrementalCompilation.isEnabled() }) + isEnabled = { enabled ?: IncrementalCompilation.isEnabled() }) -fun dataContainerCacheVersion(dataRoot: File): CacheVersion = +fun dataContainerCacheVersion(dataRoot: File, enabled: Boolean? = null): CacheVersion = CacheVersion(ownVersion = DATA_CONTAINER_VERSION, versionFile = File(dataRoot, DATA_CONTAINER_VERSION_FILE_NAME), whenVersionChanged = CacheVersion.Action.REBUILD_ALL_KOTLIN, whenTurnedOn = CacheVersion.Action.REBUILD_ALL_KOTLIN, whenTurnedOff = CacheVersion.Action.CLEAN_DATA_CONTAINER, - isEnabled = { IncrementalCompilation.isEnabled() }) + isEnabled = { enabled ?: IncrementalCompilation.isEnabled() }) diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index 0ebd28ba657..f95b8bf708d 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -448,7 +448,10 @@ class CompileServiceImpl( val workingDir = incrementalCompilationOptions.workingDir val versions = commonCacheVersions(workingDir) + - customCacheVersion(incrementalCompilationOptions.customCacheVersion, incrementalCompilationOptions.customCacheVersionFileName, workingDir, forceEnable = true) + customCacheVersion(incrementalCompilationOptions.customCacheVersion, + incrementalCompilationOptions.customCacheVersionFileName, + workingDir, + enabled = true) return IncrementalJsCompilerRunner(workingDir, versions, reporter) .compile(allKotlinFiles, args, compilerMessageCollector, { changedFiles }) @@ -499,7 +502,10 @@ class CompileServiceImpl( val workingDir = incrementalCompilationOptions.workingDir val versions = commonCacheVersions(workingDir) + - customCacheVersion(incrementalCompilationOptions.customCacheVersion, incrementalCompilationOptions.customCacheVersionFileName, workingDir, forceEnable = true) + customCacheVersion(incrementalCompilationOptions.customCacheVersion, + incrementalCompilationOptions.customCacheVersionFileName, + workingDir, + enabled = true) return IncrementalJvmCompilerRunner(workingDir, javaSourceRoots, versions, reporter, annotationFileUpdater, artifactChanges, changesRegistry) diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/cacheVersions.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/cacheVersions.kt index 5c418e5c514..83b1c62d31f 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/cacheVersions.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/cacheVersions.kt @@ -16,22 +16,21 @@ package org.jetbrains.kotlin.incremental -import org.jetbrains.kotlin.config.IncrementalCompilation import java.io.File internal const val STANDALONE_CACHE_VERSION = 2 internal const val STANDALONE_VERSION_FILE_NAME = "standalone-ic-format-version.txt" fun standaloneCacheVersion(dataRoot: File): CacheVersion = - customCacheVersion(STANDALONE_CACHE_VERSION, STANDALONE_VERSION_FILE_NAME, dataRoot) + customCacheVersion(STANDALONE_CACHE_VERSION, STANDALONE_VERSION_FILE_NAME, dataRoot, enabled = true) -fun customCacheVersion(version: Int, fileName: String, dataRoot: File, forceEnable: Boolean = false): CacheVersion = +fun customCacheVersion(version: Int, fileName: String, dataRoot: File, enabled: Boolean): CacheVersion = CacheVersion(ownVersion = version, versionFile = File(dataRoot, fileName), whenVersionChanged = CacheVersion.Action.REBUILD_ALL_KOTLIN, whenTurnedOn = CacheVersion.Action.REBUILD_ALL_KOTLIN, whenTurnedOff = CacheVersion.Action.REBUILD_ALL_KOTLIN, - isEnabled = { IncrementalCompilation.isEnabled() || forceEnable }) + isEnabled = { enabled }) fun commonCacheVersions(cachesDir: File): List = listOf(normalCacheVersion(cachesDir), diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 4db7a3231e3..70fb1dacc1d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -67,10 +67,11 @@ abstract class AbstractKotlinCompile() : AbstractKo internal val taskBuildDirectory: File get() = File(File(project.buildDir, KOTLIN_BUILD_DIR_NAME), name).apply { mkdirs() } - private val cacheVersions: List = - listOf(normalCacheVersion(taskBuildDirectory), - dataContainerCacheVersion(taskBuildDirectory), - gradleCacheVersion(taskBuildDirectory)) + private val cacheVersions: List + get() = + listOf(normalCacheVersion(taskBuildDirectory, enabled = incremental), + dataContainerCacheVersion(taskBuildDirectory, enabled = incremental), + gradleCacheVersion(taskBuildDirectory, enabled = incremental)) // indicates that task should compile kotlin incrementally if possible // it's not possible when IncrementalTaskInputs#isIncremental returns false (i.e first build) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/gradleCacheVersion.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/gradleCacheVersion.kt index efd65691d0b..3fe6e96383f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/gradleCacheVersion.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/gradleCacheVersion.kt @@ -21,5 +21,5 @@ import java.io.File internal const val GRADLE_CACHE_VERSION = 4 internal const val GRADLE_CACHE_VERSION_FILE_NAME = "gradle-format-version.txt" -internal fun gradleCacheVersion(dataRoot: File): CacheVersion = - customCacheVersion(GRADLE_CACHE_VERSION, GRADLE_CACHE_VERSION_FILE_NAME, dataRoot) +internal fun gradleCacheVersion(dataRoot: File, enabled: Boolean): CacheVersion = + customCacheVersion(GRADLE_CACHE_VERSION, GRADLE_CACHE_VERSION_FILE_NAME, dataRoot, enabled)