Adding generation states destroying to module-based compilation, to fix kapt usage with this compilation path
This commit is contained in:
committed by
Zalim Bashorov
parent
3615ca5b02
commit
c585d91e79
+15
-4
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user