in src/main/kotlin/org/jetbrains/tinygoplugin/preview/TinyGoPreviewWasmService.kt [23:47]
fun compileWasm(scratchFile: VirtualFile, onFinish: () -> Unit) {
compilationStatus[scratchFile.path] = AtomicReference(CompilationStatus.InProgress)
val tinyGoConfiguration = project.tinyGoConfiguration()
val arguments = listOf(
"build",
"-tags=${tinyGoConfiguration.targetPlatform}",
"-opt=1",
"-no-debug",
"-o=${getOutputFile(scratchFile.path)}",
scratchFile.canonicalPath!!
)
val executor = GoExecutor.`in`(project, null)
.withExePath(tinyGoConfiguration.sdk.executable?.canonicalPath)
.withParameters(arguments)
executor.executeWithProgress {
if (it.status.ordinal == 0) {
compilationStatus[scratchFile.path]!!.set(CompilationStatus.OK)
onFinish.invoke()
} else {
compilationStatus[scratchFile.path]!!.set(CompilationStatus.Failed)
}
}
}