Rebuild only kotlin when cache version is changed
This commit is contained in:
@@ -98,6 +98,25 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
statisticsLogger.reportTotal()
|
statisticsLogger.reportTotal()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun chunkBuildStarted(context: CompileContext, chunk: ModuleChunk) {
|
||||||
|
super.chunkBuildStarted(context, chunk)
|
||||||
|
|
||||||
|
if (JavaBuilderUtil.isForcedRecompilationAllJavaModules(context)) return
|
||||||
|
|
||||||
|
val targets = chunk.targets
|
||||||
|
val dataManager = context.projectDescriptor.dataManager
|
||||||
|
val hasKotlin = HasKotlinMarker(dataManager)
|
||||||
|
|
||||||
|
if (targets.none { hasKotlin[it] == true }) return
|
||||||
|
|
||||||
|
val cacheVersionsProvider = CacheVersionProvider(dataManager.dataPaths)
|
||||||
|
val allVersions = cacheVersionsProvider.allVersions(targets)
|
||||||
|
val actions = allVersions.map { it.checkVersion() }.toSet()
|
||||||
|
|
||||||
|
val fsOperations = FSOperationsHelper(context, chunk, LOG)
|
||||||
|
applyActionsOnCacheVersionChange(actions, cacheVersionsProvider, context, dataManager, targets, fsOperations)
|
||||||
|
}
|
||||||
|
|
||||||
override fun build(
|
override fun build(
|
||||||
context: CompileContext,
|
context: CompileContext,
|
||||||
chunk: ModuleChunk,
|
chunk: ModuleChunk,
|
||||||
@@ -154,17 +173,6 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
val isChunkRebuilding = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context)
|
val isChunkRebuilding = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context)
|
||||||
|| targets.any { rebuildAfterCacheVersionChanged[it] == true }
|
|| targets.any { rebuildAfterCacheVersionChanged[it] == true }
|
||||||
|
|
||||||
if (!isChunkRebuilding && targets.any { hasKotlin[it] == true }) {
|
|
||||||
val cacheVersionsProvider = CacheVersionProvider(dataManager.dataPaths)
|
|
||||||
val allVersions = cacheVersionsProvider.allVersions(targets)
|
|
||||||
val actions = allVersions.map { it.checkVersion() }.toSet()
|
|
||||||
|
|
||||||
applyActionsOnCacheVersionChange(actions, cacheVersionsProvider, context, dataManager, targets, fsOperations)
|
|
||||||
|
|
||||||
if (actions.any { it.isChunkRebuildRequired }) {
|
|
||||||
return CHUNK_REBUILD_REQUIRED
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!hasKotlinDirtyOrRemovedFiles(dirtyFilesHolder, chunk)) {
|
if (!hasKotlinDirtyOrRemovedFiles(dirtyFilesHolder, chunk)) {
|
||||||
if (isChunkRebuilding) {
|
if (isChunkRebuilding) {
|
||||||
targets.forEach { hasKotlin[it] = false }
|
targets.forEach { hasKotlin[it] = false }
|
||||||
@@ -356,6 +364,9 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
hasKotlin.clean(target)
|
hasKotlin.clean(target)
|
||||||
rebuildAfterCacheVersionChanged[target] = true
|
rebuildAfterCacheVersionChanged[target] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fsOperations.markChunk()
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
CacheVersion.Action.CLEAN_NORMAL_CACHES -> {
|
CacheVersion.Action.CLEAN_NORMAL_CACHES -> {
|
||||||
|
|||||||
@@ -76,13 +76,13 @@ class CacheVersion(
|
|||||||
get() = versionFile
|
get() = versionFile
|
||||||
|
|
||||||
// Order of entries is important, because actions are sorted in KotlinBuilder::checkVersions
|
// Order of entries is important, because actions are sorted in KotlinBuilder::checkVersions
|
||||||
enum class Action(val isChunkRebuildRequired: Boolean = false) {
|
enum class Action {
|
||||||
REBUILD_ALL_KOTLIN(isChunkRebuildRequired = true),
|
REBUILD_ALL_KOTLIN,
|
||||||
REBUILD_CHUNK(isChunkRebuildRequired = true),
|
REBUILD_CHUNK,
|
||||||
CLEAN_NORMAL_CACHES(),
|
CLEAN_NORMAL_CACHES,
|
||||||
CLEAN_EXPERIMENTAL_CACHES(),
|
CLEAN_EXPERIMENTAL_CACHES,
|
||||||
CLEAN_DATA_CONTAINER(),
|
CLEAN_DATA_CONTAINER,
|
||||||
DO_NOTHING()
|
DO_NOTHING
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-20
@@ -1,20 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module1/C.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_C.java
|
|
||||||
End of files
|
|
||||||
|
|
||||||
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module1/A.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_A.kt
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module1/B.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_B.kt
|
|
||||||
End of files
|
|
||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module1/A.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_A.java
|
|
||||||
End of files
|
|
||||||
|
|
||||||
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module1/B.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_B.java
|
|
||||||
End of files
|
|
||||||
-18
@@ -1,46 +1,28 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module4/D.class
|
|
||||||
out/production/module4/module4/D.class
|
out/production/module4/module4/D.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
module4/src/module4_d.kt
|
module4/src/module4_d.kt
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
|
||||||
module4/src/module4_D.java
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module1/META-INF/module1.kotlin_module
|
out/production/module1/META-INF/module1.kotlin_module
|
||||||
out/production/module1/module1/A.class
|
out/production/module1/module1/A.class
|
||||||
out/production/module1/module1/Module1_aKt.class
|
out/production/module1/module1/Module1_aKt.class
|
||||||
End of files
|
End of files
|
||||||
Cleaning output files:
|
|
||||||
out/production/module1/A.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
Compiling files:
|
||||||
module1/src/module1_a.kt
|
module1/src/module1_a.kt
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_A.java
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module2/B.class
|
|
||||||
out/production/module2/META-INF/module2.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module2/module2/Module2_bKt.class
|
out/production/module2/module2/Module2_bKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
module2/src/module2_b.kt
|
module2/src/module2_b.kt
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_B.java
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module3/C.class
|
|
||||||
out/production/module3/META-INF/module3.kotlin_module
|
out/production/module3/META-INF/module3.kotlin_module
|
||||||
out/production/module3/module3/Module3_cKt.class
|
out/production/module3/module3/Module3_cKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
module3/src/module3_c.kt
|
module3/src/module3_c.kt
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
|
||||||
module3/src/module3_C.java
|
|
||||||
End of files
|
|
||||||
jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/data-container-version-build.log
Vendored
-32
@@ -1,32 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module4/D.class
|
|
||||||
out/production/module4/module4/D.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module4/src/module4_d.kt
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module4/src/module4_D.java
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module1/META-INF/module1.kotlin_module
|
|
||||||
out/production/module1/module1/A.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/module2/META-INF/module2.kotlin_module
|
|
||||||
out/production/module2/module2/Module2_bKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_b.kt
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module3/META-INF/module3.kotlin_module
|
|
||||||
out/production/module3/module3/Module3_cKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module3/src/module3_c.kt
|
|
||||||
End of files
|
|
||||||
-4
@@ -7,11 +7,7 @@ module1/src/module1_A.kt
|
|||||||
End of files
|
End of files
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module2/b/B.class
|
out/production/module2/b/B.class
|
||||||
out/production/module2/b/C.class
|
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
module2/src/module2_B.kt
|
module2/src/module2_B.kt
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_C.java
|
|
||||||
End of files
|
|
||||||
-13
@@ -1,13 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module1/META-INF/module1.kotlin_module
|
|
||||||
out/production/module1/a/Module1_AKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_A.kt
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module2/b/B.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_B.kt
|
|
||||||
End of files
|
|
||||||
-4
@@ -8,11 +8,7 @@ module1/src/module1_A.kt
|
|||||||
End of files
|
End of files
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module2/b/B.class
|
out/production/module2/b/B.class
|
||||||
out/production/module2/b/C.class
|
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
module2/src/module2_B.kt
|
module2/src/module2_B.kt
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_C.java
|
|
||||||
End of files
|
|
||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module1/META-INF/module1.kotlin_module
|
|
||||||
out/production/module1/a/A.class
|
|
||||||
out/production/module1/a/Module1_AKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_A.kt
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module2/b/B.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_B.kt
|
|
||||||
End of files
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module/META-INF/module.kotlin_module
|
||||||
out/production/module/test/BKt.class
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module/other/OtherKt.class
|
out/production/module/other/OtherKt.class
|
||||||
out/production/module/test/AKt.class
|
out/production/module/test/AKt.class
|
||||||
|
out/production/module/test/BKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
src/a.kt
|
||||||
|
|||||||
-2
@@ -1,7 +1,5 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/A.class
|
out/production/module/A.class
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module/META-INF/module.kotlin_module
|
||||||
out/production/module/other/OtherKt.class
|
out/production/module/other/OtherKt.class
|
||||||
out/production/module/test/AKt.class
|
out/production/module/test/AKt.class
|
||||||
|
|||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module/A.class
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module/META-INF/module.kotlin_module
|
|
||||||
out/production/module/other/OtherKt.class
|
|
||||||
out/production/module/test/AKt.class
|
|
||||||
out/production/module/test/BKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
src/a.kt
|
|
||||||
src/b.kt
|
|
||||||
src/other.kt
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
src/A.java
|
|
||||||
End of files
|
|
||||||
@@ -8,8 +8,6 @@ Cleaning output files:
|
|||||||
out/production/module1/META-INF/module1.kotlin_module
|
out/production/module1/META-INF/module1.kotlin_module
|
||||||
out/production/module1/module1/A.class
|
out/production/module1/module1/A.class
|
||||||
out/production/module1/module1/Module1_aKt.class
|
out/production/module1/module1/Module1_aKt.class
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module1/module1/Module1_fKt.class
|
out/production/module1/module1/Module1_fKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
|
|||||||
Vendored
-38
@@ -1,38 +0,0 @@
|
|||||||
Cleaning output files:
|
|
||||||
out/production/module4/module4/D.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module4/src/module4_d.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/Module1_aKt.class
|
|
||||||
out/production/module1/module1/Module1_fKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_a.kt
|
|
||||||
module1/src/module1_f.kt
|
|
||||||
End of files
|
|
||||||
COMPILATION FAILED
|
|
||||||
Name expected
|
|
||||||
|
|
||||||
|
|
||||||
Compiling files:
|
|
||||||
module1/src/module1_a.kt
|
|
||||||
module1/src/module1_f.kt
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module2/META-INF/module2.kotlin_module
|
|
||||||
out/production/module2/module2/Module2_bKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module2/src/module2_b.kt
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module3/META-INF/module3.kotlin_module
|
|
||||||
out/production/module3/module3/Module3_cKt.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module3/src/module3_c.kt
|
|
||||||
End of files
|
|
||||||
-2
@@ -18,8 +18,6 @@ End of files
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module2/META-INF/module2.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module2/foo/Module2_aKt.class
|
out/production/module2/foo/Module2_aKt.class
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module2/foo/Module2_bKt.class
|
out/production/module2/foo/Module2_bKt.class
|
||||||
out/production/module2/foo/Module2_cKt.class
|
out/production/module2/foo/Module2_cKt.class
|
||||||
End of files
|
End of files
|
||||||
|
|||||||
Reference in New Issue
Block a user