google / ksp

Kotlin Symbol Processing API
https://github.com/google/ksp
Apache License 2.0
2.84k stars 265 forks source link

Incompatibility with KotlinSourceSetFactory configuration for JS #1318

Open ting-yuan opened 1 year ago

ting-yuan commented 1 year ago

repro by @rjaros:

""" The problem can be easily reproduced by adding this code:

afterEvaluate {
    configurations["jvmRuntimeClasspath"].files
}

at the end of https://github.com/google/ksp/blob/main/examples/multiplatform/workload/build.gradle.kts """

stacktrace:

Cause 1: java.lang.IllegalArgumentException: Cannot change attributes of dependency configuration ':workload:generatedByKspKotlinJsApiDependenciesMetadata' after it has been resolved
        at org.gradle.api.internal.attributes.ImmutableAttributeContainerWithErrorMessage.attribute(ImmutableAttributeContainerWithErrorMessage.java:57)
        at org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory.setJsCompilerIfNecessary(KotlinSourceSetFactory.kt:156)
        at org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory.access$setJsCompilerIfNecessary(KotlinSourceSetFactory.kt:66)
        at org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory$setUpSourceSetDefaults$1$1$1.invoke(KotlinSourceSetFactory.kt:104)
        at org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory$setUpSourceSetDefaults$1$1$1.invoke(KotlinSourceSetFactory.kt:103)
        at org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory$sam$org_gradle_api_Action$0.execute(KotlinSourceSetFactory.kt)
mpetuska commented 1 year ago

Hackish workaround is available in https://kotlinlang.slack.com/archives/C013BA8EQSE/p1674737612683639