aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin
diff options
context:
space:
mode:
authorTing-Yuan Huang <laszio@google.com>2021-12-08 22:30:49 -0800
committerlaszio <ting-yuan@users.noreply.github.com>2021-12-09 17:19:51 -0800
commit0e0e2be7d2c74bdab7977cc7f8160c70bc88ef85 (patch)
tree79f85b83893acc28feae6a3649284228ebe7692d /gradle-plugin
parent750e68447b0d77ab36f64aba60db63090d452f43 (diff)
downloadksp-0e0e2be7d2c74bdab7977cc7f8160c70bc88ef85.tar.gz
Setup compiler args for JSIR tasks
Diffstat (limited to 'gradle-plugin')
-rw-r--r--gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt16
1 files changed, 16 insertions, 0 deletions
diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
index bd4e6568..8e3bda41 100644
--- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
+++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
@@ -599,12 +599,22 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
abstract class KspTaskJS @Inject constructor(
objectFactory: ObjectFactory,
) : Kotlin2JsCompile(KotlinJsOptionsImpl(), objectFactory), KspTask {
+ private val backendSelectionArgs = listOf(
+ "-Xir-only",
+ "-Xir-produce-js",
+ "-Xir-produce-klib-dir",
+ "-Xir-produce-klib-file"
+ )
+
override fun configureCompilation(
kotlinCompilation: KotlinCompilationData<*>,
kotlinCompile: AbstractKotlinCompile<*>,
) {
Configurator<KspTaskJS>(kotlinCompilation).configure(this)
kotlinCompile as Kotlin2JsCompile
+ kotlinOptions.freeCompilerArgs = kotlinCompile.kotlinOptions.freeCompilerArgs.filter {
+ it in backendSelectionArgs
+ }
val providerFactory = kotlinCompile.project.providers
compileKotlinArgumentsContributor.set(
providerFactory.provider {
@@ -643,6 +653,7 @@ abstract class KspTaskJS @Inject constructor(
}
args.addPluginOptions(options.get())
args.outputFile = File(destination, "dummyOutput.js").canonicalPath
+ kotlinOptions.copyFreeCompilerArgsToArgs(args)
}
// Overrding an internal function is hacky.
@@ -661,6 +672,11 @@ abstract class KspTaskJS @Inject constructor(
}
super.callCompilerAsync(args, sourceRoots, inputChanges)
}
+
+ // Overrding an internal function is hacky.
+ // TODO: Ask upstream to open it.
+ @Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER", "EXPOSED_PARAMETER_TYPE")
+ fun `isIncrementalCompilationEnabled$kotlin_gradle_plugin`(): Boolean = false
}
@CacheableTask