Andrey Romanyuk
08/29/2023, 6:44 PMval sourceSets = project.extensions.getByType(JavaPluginExtension::class.java).sourceSets
val configAction: SourceSet.() -> Unit= {
compileClasspath += myConfiguration
}
sourceSets.findByName(name)?.apply(configAction) ?: sourceSets.whenObjectAdded { obj -> if (obj.name == name) configAction.invoke(obj) }
How can I replicate this for KMM-sourceSets? I tried using KotlinMultiplatformExtension, but KotlinSourceSets won't let me add my configuration to the classpath
Thanks!ilya.gorbunov
08/31/2023, 4:09 AMcompileClasspath
configuration which is resolved to determine compilation dependencies because a source set can participate in multiple compilations.
But jvmMain
source set usually participates only in one compilation. You can access that compilation and get its compileDependencyConfiguration
configuration:
kotlin {
jvm {
compilations {
val main by getting {
configurations.compileDependencyConfiguration += ...
}
However, each source set has configurations where it can declare dependencies. You can get the name of the corresponding configuration using source set ...ConfigurationName
properties:
kotlin {
sourceSets {
val jvmMain by getting {
project.configurations[compileOnlyConfigurationName] +=
}
Andrey Romanyuk
08/31/2023, 9:24 AM