Adding generation states destroying to module-based compilation, to fix kapt usage with this compilation path

This commit is contained in:
Ilya Chernikov
2016-01-15 14:45:22 +03:00
committed by Zalim Bashorov
parent 3615ca5b02
commit c585d91e79
@@ -49,6 +49,7 @@ import java.io.File
import java.lang.reflect.Constructor import java.lang.reflect.Constructor
import java.lang.reflect.InvocationTargetException import java.lang.reflect.InvocationTargetException
import java.net.URLClassLoader import java.net.URLClassLoader
import java.util.*
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import java.util.jar.Attributes import java.util.jar.Attributes
@@ -109,6 +110,8 @@ object KotlinToJVMBytecodeCompiler {
result.throwIfError() result.throwIfError()
val generationStates = ArrayList<GenerationState>();
for (module in chunk) { for (module in chunk) {
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled() ProgressIndicatorAndCompilationCanceledStatus.checkCanceled()
val ktFiles = CompileEnvironmentUtil.getKtFiles( val ktFiles = CompileEnvironmentUtil.getKtFiles(
@@ -118,13 +121,21 @@ object KotlinToJVMBytecodeCompiler {
val generationState = generate(environment, result, ktFiles, module, moduleOutputDirectory, val generationState = generate(environment, result, ktFiles, module, moduleOutputDirectory,
module.getModuleName()) module.getModuleName())
outputFiles.put(module, generationState.factory) outputFiles.put(module, generationState.factory)
generationStates.add(generationState);
} }
for (module in chunk) { try {
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled() for (module in chunk) {
writeOutput(configuration, outputFiles[module]!!, File(module.getOutputDirectory()), jarPath, jarRuntime, null) ProgressIndicatorAndCompilationCanceledStatus.checkCanceled()
writeOutput(configuration, outputFiles[module]!!, File(module.getOutputDirectory()), jarPath, jarRuntime, null)
}
return true
}
finally {
for (generationState in generationStates) {
generationState.destroy();
}
} }
return true
} }
fun createCompilerConfiguration( fun createCompilerConfiguration(