I'm also interested how I'd do something like add ...
# gradle
s
I'm also interested how I'd do something like add a dynamic configuration / source set with `kotlin-script-gradle`:
Copy code
configurations {
    provided
}
 
sourceSets {
    main {
        compileClasspath += configurations.provided
        runtimeClasspath += configurations.provided
    }
    test {
        compileClasspath += configurations.provided
        runtimeClasspath += configurations.provided
    }
    customSourceSet
}
 
dependencies {
    provided project(':Core')
}
I'm assuming I'd need to think of it differently with
gradle-kotlin-script
? Maybe I'd be using something extension functions to add similar behavior? I'm also not sure how I'd do something like
customSourceSetCompile
in
kotlin-script-gradle
, and am curious what the solution is.
s
spierce7:
Copy code
fun Project.sourceSets(block: SourceSetContainer.() -> Unit) = the<JavaPluginConvention>().sourceSets.apply(block)

val SourceSetContainer.main: SourceSet get() = this["main"]
val SourceSetContainer.test: SourceSet get() = this["test"]
fun SourceSetContainer.main(block: SourceSet.() -> Unit) = main.apply(block)
fun SourceSetContainer.test(block: SourceSet.() -> Unit) = test.apply(block)

sourceSets {
            main {
                println("${name.capitalize()} => Java : ${java.srcDirs}, Kotlin: ${kotlin.srcDirs}, Resource: ${resources.srcDirs}")
            }
            test {
                println("${name.capitalize()} => Java : ${java.srcDirs}, Kotlin: ${kotlin.srcDirs}, Resource: ${resources.srcDirs}")
            }
        }
this is what i am using in my build scripts. Might be useful to you.
For kotlin, sourceset. add
val SourceSet.kotlin: SourceDirectorySet get() = (this as HasConvention).convention.getPlugin<KotlinSourceSet>().kotlin
s
oh wow, this might take some getting used too