in src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InstrumentCodeTask.kt [277:311]
override fun register(project: Project) {
val instrumentCodeEnabled = project.extensionProvider.flatMap { it.instrumentCode }
val sourceSets = project.extensions.findByName("sourceSets") as SourceSetContainer
sourceSets.forEach { sourceSet ->
val name = sourceSet.getTaskName("instrument", "code")
project.registerTask<InstrumentCodeTask>(name, configureWithType = false) {
outputDirectory.convention(project.layout.buildDirectory.map { it.dir("instrumented").dir(name) })
instrumentationLogs.convention(project.gradle.startParameter.logLevel == LogLevel.INFO)
sourceDirs.from(project.provider {
sourceSet.allJava.srcDirs
})
formsDirs.from(project.provider {
sourceDirs.asFileTree.filter {
it.toPath().extension == "form"
}
})
classesDirs.from(project.provider {
(sourceSet.output.classesDirs as ConfigurableFileCollection).from.run {
project.files(this).filter { it.exists() }
}
})
sourceSetCompileClasspath.from(project.provider {
sourceSet.compileClasspath
})
dependsOn(sourceSet.classesTaskName)
onlyIf { instrumentCodeEnabled.get() }
sourceSet.compiledBy(this)
}
}
}