zt
02/09/2023, 12:49 AMcompose {
kotlinCompilerPlugin.set("androidx.compose.compiler:compiler:1.4.3-dev-k1.8.20-Beta-15b4f4328eb")
kotlinCompilerPluginArgs.add("suppressKotlinVersionCompatibilityCheck=${rootProject.libs.versions.kotlin.get()}")
}
ilya.chernikov
02/09/2023, 10:05 AMkotlinc
CLI arguments (-P
).
But I guess you're talking about compiling scripts with Gradle, so, I'm not sure this will work.
But you can try it by specifying freeCompilerArgs
.zt
02/09/2023, 6:16 PMilya.chernikov
02/10/2023, 7:34 AM-Xplugin
and -P
). So in this case the plugin will be applied to the script the same way as to a regular Kotlin source file. There is a test in the Kotlin repo that can serve as a minimal example - https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsIT.kt#L145
In case of gradle, the CLI compiler is used too, so the same CLI args should theoretically work, but gradle provides some configuration helpers, that may interfere with proper passing of the args. (Since compiling scripts with gradle and plugins is far from typical, so nobody usually tests this combination.)
There is a third variant - using the embedded scripting host for compilation - and it should be handled a bit differently, but I guess this is not your case.zt
02/10/2023, 5:51 PMfun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
val scriptDefinition = createJvmScriptDefinitionFromTemplate<ComposableScript>(
compilation = {
compilerOptions(
"-Xuse-k2",
"-Xplugin=/home/nick/.local/share/gradle/caches/jars-9/b77f80709d6a9e24deb7ad7c0b9da20f/compose-gradle-plugin-1.3.0.jar"
)
}
)
return BasicJvmScriptingHost().eval(
script = scriptFile.toScriptSource(),
compilationConfiguration = scriptDefinition.compilationConfiguration,
evaluationConfiguration = scriptDefinition.evaluationConfiguration
)
}
Yet I dont get any error, it just stops running when it hits the compose code in my scriptilya.chernikov
02/13/2023, 10:49 AM-Xuse-k2
.
In general, the plugins should work for embedded hosts too, see e.g. the test https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt#L247, but to be honest, I never tried it with compose, so there could be problems.-Xcompiler-plugin
cli option instead of -Xplugin
. But it will not help with scripting for now.