Clean only kotlin caches when incremental compilation is off

This commit is contained in:
Alexey Tsvetkov
2015-09-25 18:57:26 +03:00
parent 1298d115bd
commit ba33020140
6 changed files with 60 additions and 16 deletions
@@ -137,18 +137,12 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
val dataManager = projectDescriptor.dataManager val dataManager = projectDescriptor.dataManager
if (!IncrementalCompilation.isEnabled()) { if (chunk.targets.any { dataManager.dataPaths.getKotlinCacheVersion(it).isIncompatible() }) {
dataManager.clean() LOG.info("Clearing caches for " + chunk.targets.map { it.presentableName }.join())
dataManager.flush(true) val incrementalCaches = getIncrementalCaches(chunk, context)
} incrementalCaches.values().forEach(StorageOwner::clean)
else { FSOperations.markDirtyRecursively(context, CompilationRound.NEXT, chunk)
if (chunk.targets.any { dataManager.dataPaths.getKotlinCacheVersion(it).isIncompatible() }) { return ADDITIONAL_PASS_REQUIRED
LOG.info("Clearing caches for " + chunk.targets.map { it.presentableName }.join())
val incrementalCaches = getIncrementalCaches(chunk, context)
incrementalCaches.values().forEach(StorageOwner::clean)
FSOperations.markDirtyRecursively(context, CompilationRound.NEXT, chunk)
return ADDITIONAL_PASS_REQUIRED
}
} }
if (!dirtyFilesHolder.hasDirtyFiles() && !dirtyFilesHolder.hasRemovedFiles() if (!dirtyFilesHolder.hasDirtyFiles() && !dirtyFilesHolder.hasRemovedFiles()
@@ -38,9 +38,10 @@ class CacheFormatVersion(targetDataRoot: File) {
private val file = File(targetDataRoot, FORMAT_VERSION_FILE_PATH) private val file = File(targetDataRoot, FORMAT_VERSION_FILE_PATH)
fun isIncompatible(): Boolean { fun isIncompatible(): Boolean {
assert(IncrementalCompilation.isEnabled()) { "Incremental compilation is not enabled" }
if (!file.exists()) return false if (!file.exists()) return false
if (!IncrementalCompilation.isEnabled()) return true
val versionNumber = file.readText().toInt() val versionNumber = file.readText().toInt()
if (versionNumber != CACHE_FORMAT_VERSION) { if (versionNumber != CACHE_FORMAT_VERSION) {
@@ -1,10 +1,26 @@
Cleaning output files: Cleaning output files:
out/production/module1/module1/A.class out/production/module1/module1/A.class
End of files End of files
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/module1/Module1Package.class
out/production/module1/module1/Module1_otherKt.class
End of files
Compiling files: Compiling files:
module1/src/module1_a.kt module1/src/module1_a.kt
module1/src/module1_other.kt module1/src/module1_other.kt
End of files End of files
Cleaning output files:
out/production/module3/META-INF/module3.kotlin_module
out/production/module3/module3/Module3Package.class
out/production/module3/module3/Module3_cKt.class
End of files
Compiling files:
module3/src/module3_c.kt
End of files
Cleaning output files:
out/production/module2/B.class
End of files
Compiling files: Compiling files:
module2/src/module2_B.java module2/src/module2_B.java
End of files End of files
@@ -1,2 +1,3 @@
module1-> module1->
module2->module1 module2->module1
module3->
@@ -0,0 +1,3 @@
package module3
fun c() {}
@@ -1,24 +1,53 @@
Cleaning output files: Cleaning output files:
out/production/module1/module1/A.class out/production/module1/module1/A.class
End of files End of files
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/module1/Module1Package.class
out/production/module1/module1/Module1_otherKt.class
End of files
Compiling files: Compiling files:
module1/src/module1_a.kt module1/src/module1_a.kt
module1/src/module1_other.kt module1/src/module1_other.kt
End of files End of files
Cleaning output files:
out/production/module3/META-INF/module3.kotlin_module
out/production/module3/module3/Module3Package.class
out/production/module3/module3/Module3_cKt.class
End of files
Compiling files: Compiling files:
module3/src/module3_c.kt module3/src/module3_c.kt
End of files End of files
Cleaning output files:
out/production/module2/B.class
End of files
Compiling files: Compiling files:
module2/src/module2_B.java module2/src/module2_B.java
End of files End of files
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/module1/A.class
out/production/module1/module1/Module1Package.class
out/production/module1/module1/Module1_aKt.class
End of files
Compiling files:
module1/src/module1_a.kt
End of files
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/module1/A.class
out/production/module1/module1/Module1Package.class
out/production/module1/module1/Module1_aKt.class
out/production/module1/module1/Module1_otherKt.class
End of files
Compiling files: Compiling files:
module1/src/module1_a.kt module1/src/module1_a.kt
module1/src/module1_other.kt module1/src/module1_other.kt
End of files End of files
Compiling files: Cleaning output files:
module3/src/module3_c.kt out/production/module2/B.class
End of files End of files
Compiling files: Compiling files:
module2/src/module2_B.java module2/src/module2_B.java