@@ -14,9 +14,11 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
14
14
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
15
15
import org.jetbrains.kotlin.cli.jvm.config.configureJdkClasspathRoots
16
16
import org.jetbrains.kotlin.cli.jvm.configureAdvancedJvmOptions
17
+ import org.jetbrains.kotlin.cli.jvm.setupJvmSpecificArguments
17
18
import org.jetbrains.kotlin.config.CommonConfigurationKeys
18
19
import org.jetbrains.kotlin.config.CompilerConfiguration
19
20
import org.jetbrains.kotlin.config.JVMConfigurationKeys
21
+ import org.jetbrains.kotlin.config.JvmTarget
20
22
import org.jetbrains.kotlin.config.languageVersionSettings
21
23
import org.jetbrains.kotlin.ir.backend.js.jsPhases
22
24
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
@@ -28,7 +30,8 @@ import java.io.File
28
30
29
31
class KotlinEnvironment (
30
32
val classpath : List <File >,
31
- additionalJsClasspath : List <File >
33
+ additionalJsClasspath : List <File >,
34
+ additionalCompilerFlags : List <String > = emptyList()
32
35
) {
33
36
companion object {
34
37
/* *
@@ -59,6 +62,7 @@ class KotlinEnvironment(
59
62
}
60
63
61
64
val JS_LIBRARIES = additionalJsClasspath.map { it.absolutePath }
65
+ val additionalCompilerOptions = additionalCompilerFlags + additionalCompilerArguments
62
66
63
67
@Synchronized
64
68
fun <T > environment (f : (KotlinCoreEnvironment ) -> T ): T {
@@ -96,7 +100,7 @@ class KotlinEnvironment(
96
100
97
101
private fun createConfiguration (): CompilerConfiguration {
98
102
val arguments = K2JVMCompilerArguments ()
99
- parseCommandLineArguments(additionalCompilerArguments , arguments)
103
+ parseCommandLineArguments(additionalCompilerOptions , arguments)
100
104
return CompilerConfiguration ().apply {
101
105
addJvmClasspathRoots(classpath.filter { it.exists() && it.isFile && it.extension == " jar" })
102
106
val messageCollector = MessageCollector .NONE
@@ -109,9 +113,10 @@ class KotlinEnvironment(
109
113
110
114
// it uses languageVersionSettings that was set above
111
115
configureAdvancedJvmOptions(arguments)
116
+ setupJvmSpecificArguments(arguments)
112
117
put(JVMConfigurationKeys .DO_NOT_CLEAR_BINDING_CONTEXT , true )
113
118
114
119
configureJdkClasspathRoots()
115
120
}
116
121
}
117
- }
122
+ }
0 commit comments