[Gradle, JS] Add arguments for building caches

This commit is contained in:
Ilya Goncharov
2021-04-23 12:45:01 +03:00
parent c23376f040
commit b9fc97b44f
3 changed files with 23 additions and 21 deletions
@@ -112,11 +112,9 @@ abstract class KotlinJsIrLink @Inject constructor(
allCacheDirectories
)
args.freeArgs += "-Xcache-directory=${
cacheArgs.joinToString(File.pathSeparator) {
it.normalize().absolutePath
}
}"
args.cacheDirectories = cacheArgs.joinToString(File.pathSeparator) {
it.normalize().absolutePath
}
}
super.callCompilerAsync(args, sourceRoots, changedFiles)
}
@@ -235,10 +233,7 @@ internal class CacheBuilder(
visitedFiles,
compileClasspath.files,
cacheDirectory,
(allCacheDirectories + associatedCaches).distinct(),
file.name
(allCacheDirectories + associatedCaches).distinct()
)
allCacheDirectories.add(cacheDirectory)
}
@@ -278,9 +273,7 @@ internal class CacheBuilder(
.flatMap { it.moduleArtifacts }
.map { it.file },
cacheDirectory,
dependenciesCacheDirectories,
library.name
dependenciesCacheDirectories
)
}
}
@@ -290,10 +283,7 @@ internal class CacheBuilder(
visitedFiles: MutableSet<File>,
dependencies: Collection<File>,
cacheDirectory: File,
dependenciesCacheDirectories: Collection<File>,
jsName: String
dependenciesCacheDirectories: Collection<File>
) {
if (file in visitedFiles) return
val compilerArgs = compilerArgsFactory()
@@ -307,11 +297,11 @@ internal class CacheBuilder(
visitedFiles.add(file)
compilerArgs.includes = file.normalize().absolutePath
compilerArgs.outputFile = cacheDirectory.resolve("${jsName}.js").normalize().absolutePath
compilerArgs.freeArgs += "-Xcache-directory=${dependenciesCacheDirectories.joinToString(File.pathSeparator)}"
// Change it for produce caches
compilerArgs.irProduceJs = true
compilerArgs.outputFile = cacheDirectory.normalize().absolutePath
if (dependenciesCacheDirectories.isNotEmpty()) {
compilerArgs.cacheDirectories = dependenciesCacheDirectories.joinToString(File.pathSeparator)
}
compilerArgs.irBuildCache = true
compilerArgs.libraries = dependencies
.filter { it.exists() && libraryFilter(it) }