aboutsummaryrefslogtreecommitdiff
path: root/kotlin-plugin/src/test/kotlin/moe/nea/mcautotranslations/compile_utils.kt
blob: 48d9c6e3c7ed788f82ba1e9f8a7e97dddaf32bec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@file:OptIn(ExperimentalCompilerApi::class)

package moe.nea.mcautotranslations

import com.tschuchort.compiletesting.JvmCompilationResult
import com.tschuchort.compiletesting.KotlinCompilation
import com.tschuchort.compiletesting.SourceFile
import com.tschuchort.compiletesting.configureKsp
import moe.nea.mcautotranslations.kotlin.MCAutoTranslationsComponentRegistrar
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi

private val DEFAULT_PLUGINS = arrayOf(
	MCAutoTranslationsComponentRegistrar()
)


fun compile(
	list: List<SourceFile>,
	vararg plugins: CompilerPluginRegistrar = DEFAULT_PLUGINS
): JvmCompilationResult {
	return KotlinCompilation().apply {
		sources = list
		compilerPluginRegistrars = plugins.toList()
		inheritClassPath = true
		messageOutputStream = System.out // TODO: capture this output somehow for testing
	}.compile()
}