Skip to content

Commit 9add296

Browse files
committed
Simplify getting the toolchain
1 parent f571149 commit 9add296

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

src/main/kotlin/com/compiler/server/compiler/components/KotlinCompiler.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import executors.JUnitExecutors
1515
import executors.JavaRunnerExecutor
1616
import org.jetbrains.kotlin.buildtools.api.ExperimentalBuildToolsApi
1717
import org.jetbrains.kotlin.buildtools.api.KotlinToolchains
18-
import org.jetbrains.kotlin.buildtools.api.jvm.JvmPlatformToolchain
18+
import org.jetbrains.kotlin.buildtools.api.jvm.JvmPlatformToolchain.Companion.jvm
1919
import org.jetbrains.org.objectweb.asm.ClassReader
2020
import org.jetbrains.org.objectweb.asm.ClassReader.*
2121
import org.jetbrains.org.objectweb.asm.ClassVisitor
@@ -135,8 +135,7 @@ class KotlinCompiler(
135135
.associate { it.name to mutableListOf() }
136136

137137
val toolchains = KotlinToolchains.loadImplementation(ClassLoader.getSystemClassLoader())
138-
val jvmToolchain = toolchains.getToolchain(JvmPlatformToolchain::class.java)
139-
val operation = jvmToolchain.createJvmCompilationOperation(sources, outputDir)
138+
val operation = toolchains.jvm.createJvmCompilationOperation(sources, outputDir)
140139
operation.compilerArguments.applyArgumentStrings(arguments)
141140

142141
toolchains.createBuildSession().use { session ->

src/main/kotlin/com/compiler/server/compiler/components/KotlinToJSTranslator.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
88
import org.jetbrains.kotlin.buildtools.api.ExperimentalBuildToolsApi
99
import org.jetbrains.kotlin.buildtools.api.KotlinToolchains
1010
import org.jetbrains.kotlin.buildtools.api.arguments.ExperimentalCompilerArgument
11-
import org.jetbrains.kotlin.buildtools.api.js.JsPlatformToolchain
11+
import org.jetbrains.kotlin.buildtools.api.js.JsPlatformToolchain.Companion.js
1212
import org.springframework.stereotype.Service
1313
import java.nio.file.Path
1414
import kotlin.io.path.*
@@ -88,7 +88,6 @@ class KotlinToJSTranslator(
8888
val logger = CompilationLogger()
8989
logger.compilationLogs = sources.filter { it.name.endsWith(".kt") }.associate { it.name to mutableListOf() }
9090
val toolchains = KotlinToolchains.loadImplementation(ClassLoader.getSystemClassLoader())
91-
val jsToolchain = toolchains.getToolchain(JsPlatformToolchain::class.java)
9291

9392
val klibPath = (outputDir / "klib").toFile().canonicalPath
9493
val additionalCompilerArgumentsForKLib = compilerArgumentsUtil.convertCompilerArgumentsToCompilationString(
@@ -99,7 +98,6 @@ class KotlinToJSTranslator(
9998

10099
toolchains.createBuildSession().use { session ->
101100
tryCompilation(
102-
jsToolchain,
103101
sources,
104102
outputDir,
105103
arguments + additionalCompilerArgumentsForKLib,
@@ -115,7 +113,7 @@ class KotlinToJSTranslator(
115113
) + "-ir-output-dir=${(outputDir / "js").toFile().canonicalPath}" + "-Xinclude=$klibPath"
116114

117115
tryCompilation(
118-
jsToolchain, sources, outputDir, secondPhaseArguments, session, toolchains, logger, ""
116+
sources, outputDir, secondPhaseArguments, session, toolchains, logger, ""
119117
)
120118
}.map { (outputDir / "js" / "$JS_DEFAULT_MODULE_NAME.js").readText() }
121119
.map { it.withMainArgumentsIr(arguments) }.map(::redirectOutput)
@@ -125,7 +123,6 @@ class KotlinToJSTranslator(
125123

126124
@OptIn(ExperimentalBuildToolsApi::class, ExperimentalCompilerArgument::class)
127125
private fun <T> tryCompilation(
128-
jsToolchain: JsPlatformToolchain,
129126
sources: List<Path>,
130127
outputDir: Path,
131128
arguments: List<String>,
@@ -135,7 +132,7 @@ class KotlinToJSTranslator(
135132
successValue: T,
136133
): CompilationResult<T> {
137134
val result = try {
138-
val operation = jsToolchain.createJsCompilationOperation(sources, outputDir)
135+
val operation = toolchains.js.createJsCompilationOperation(sources, outputDir)
139136
operation.compilerArguments.applyArgumentStrings(arguments)
140137

141138
session.executeOperation(operation, toolchains.createInProcessExecutionPolicy(), logger)
@@ -190,7 +187,6 @@ class KotlinToJSTranslator(
190187
compilationLogs = sources.filter { it.name.endsWith(".kt") }.associate { it.name to mutableListOf() }
191188
}
192189
val toolchains = KotlinToolchains.loadImplementation(ClassLoader.getSystemClassLoader())
193-
val jsToolchain = toolchains.getToolchain(JsPlatformToolchain::class.java)
194190

195191
val klibPath = (outputDir / "klib").toFile().canonicalPath
196192

@@ -200,7 +196,6 @@ class KotlinToJSTranslator(
200196

201197
toolchains.createBuildSession().use { session ->
202198
tryCompilation(
203-
jsToolchain,
204199
sources,
205200
outputDir,
206201
additionalCompilerArgumentsForKLib,
@@ -217,7 +212,7 @@ class KotlinToJSTranslator(
217212
if (debugInfo) secondPhaseArguments.add("-Xwasm-generate-wat")
218213

219214
tryCompilation(
220-
jsToolchain, sources, outputDir, secondPhaseArguments, session, toolchains, logger, Unit
215+
sources, outputDir, secondPhaseArguments, session, toolchains, logger, Unit
221216
)
222217
}.map {
223218
WasmTranslationSuccessfulOutput(

0 commit comments

Comments
 (0)