override fun register()

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)
                }
            }
        }