Refactoring: use same module name as Intellij

This commit is contained in:
Alexey Tsvetkov
2016-09-28 17:11:58 +03:00
parent 0d8fa69760
commit d293138c28
7 changed files with 18 additions and 12 deletions
@@ -37,6 +37,7 @@ class KotlinGradleIT: BaseGradleIT() {
project.build("build") {
assertSuccessful()
assertFileExists("build/classes/main/META-INF/kotlinProject_main.kotlin_module")
assertReportExists()
assertContains(":compileKotlin", ":compileTestKotlin")
}
@@ -106,17 +106,14 @@ private fun Project.createKotlinAfterJavaTask(
kotlinOptions: KotlinJvmOptionsImpl?,
tasksProvider: KotlinTasksProvider
): KotlinCompile {
val kotlinAfterJavaTask = with (tasksProvider.createKotlinJVMTask(this, kotlinTask.name + KOTLIN_AFTER_JAVA_TASK_SUFFIX)) {
val kotlinAfterJavaTask = with (tasksProvider.createKotlinJVMTask(this, kotlinTask.name + KOTLIN_AFTER_JAVA_TASK_SUFFIX, kotlinTask.sourceSetName)) {
mapClasspath { kotlinTask.classpath }
this
}
kotlinAfterJavaTask.dependsOn(javaTask)
javaTask.finalizedByIfNotFailed(kotlinAfterJavaTask)
kotlinAfterJavaTask.moduleName = kotlinTask.moduleName
kotlinAfterJavaTask.parentKotlinOptionsImpl = kotlinOptions
return kotlinAfterJavaTask
}
@@ -82,7 +82,6 @@ internal abstract class KotlinSourceSetProcessor<T : AbstractKotlinCompile<*>>(
logger.kotlinDebug("Creating kotlin compile task $name")
val kotlinCompile = doCreateTask(project, name)
kotlinCompile.description = taskDescription
kotlinCompile.moduleName = "${project.name}-$name"
kotlinCompile.mapClasspath { sourceSet.compileClasspath }
kotlinCompile.destinationDir = defaultKotlinDestinationDir
return kotlinCompile
@@ -109,7 +108,7 @@ internal class Kotlin2JvmSourceSetProcessor(
get() = File(project.buildDir, "kotlin-classes/$sourceSetName")
override fun doCreateTask(project: Project, taskName: String): KotlinCompile =
tasksProvider.createKotlinJVMTask(project, taskName)
tasksProvider.createKotlinJVMTask(project, taskName, sourceSet.name)
override fun doTargetSpecificProcessing() {
val aptConfiguration = project.createAptConfiguration(sourceSet.name, kotlinPluginVersion)
@@ -185,7 +184,7 @@ internal class Kotlin2JsSourceSetProcessor(
private val build = project.tasks.findByName("build")
override fun doCreateTask(project: Project, taskName: String): Kotlin2JsCompile =
tasksProvider.createKotlinJSTask(project, taskName)
tasksProvider.createKotlinJSTask(project, taskName, sourceSet.name)
override fun doTargetSpecificProcessing() {
val taskName = kotlinTask.name
@@ -332,7 +331,7 @@ internal open class KotlinAndroidPlugin(
val kotlinTaskName = "compile${variantDataName.capitalize()}Kotlin"
// todo: Investigate possibility of creating and configuring kotlinTask before evaluation
val kotlinTask = tasksProvider.createKotlinJVMTask(project, kotlinTaskName)
val kotlinTask = tasksProvider.createKotlinJVMTask(project, kotlinTaskName, variantData.name)
kotlinTask.parentKotlinOptionsImpl = rootKotlinOptions
// store kotlin classes in separate directory. They will serve as class-path to java compiler
@@ -5,6 +5,7 @@ import org.codehaus.groovy.runtime.MethodClosure
import org.gradle.api.GradleException
import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.logging.Logger
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceTask
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.compile.AbstractCompile
@@ -40,6 +41,7 @@ import org.jetbrains.kotlin.progress.CompilationCanceledStatus
import org.jetbrains.kotlin.utils.LibraryUtils
import java.io.File
import java.util.*
import kotlin.properties.Delegates
const val ANNOTATIONS_PLUGIN_NAME = "org.jetbrains.kotlin.kapt"
const val KOTLIN_BUILD_DIR_NAME = "kotlin"
@@ -68,7 +70,9 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments>() : AbstractCo
internal var anyClassesCompiled: Boolean = false
internal var friendTaskName: String? = null
internal var javaOutputDir: File? = null
internal var moduleName: String = "${project.name}-${this.name}"
internal var sourceSetName: String by Delegates.notNull()
protected val moduleName: String
get() = "${project.name}_$sourceSetName"
override fun compile() {
assert(false, { "unexpected call to compile()" })
@@ -1,20 +1,22 @@
package org.jetbrains.kotlin.gradle.tasks
import org.gradle.api.Project
import org.gradle.api.tasks.SourceSet
import org.jetbrains.kotlin.gradle.plugin.RegexTaskToFriendTaskMapper
import org.jetbrains.kotlin.gradle.plugin.TaskToFriendTaskMapper
import org.jetbrains.kotlin.gradle.plugin.mapKotlinTaskProperties
internal open class KotlinTasksProvider {
fun createKotlinJVMTask(project: Project, name: String): KotlinCompile {
fun createKotlinJVMTask(project: Project, name: String, sourceSetName: String): KotlinCompile {
return project.tasks.create(name, KotlinCompile::class.java).apply {
this.sourceSetName = sourceSetName
friendTaskName = taskToFriendTaskMapper[this]
mapKotlinTaskProperties(project, this)
outputs.upToDateWhen { isCacheFormatUpToDate }
}
}
fun createKotlinJSTask(project: Project, name: String): Kotlin2JsCompile =
fun createKotlinJSTask(project: Project, name: String, sourceSetName: String): Kotlin2JsCompile =
project.tasks.create(name, Kotlin2JsCompile::class.java)
protected open val taskToFriendTaskMapper: TaskToFriendTaskMapper =
@@ -4,7 +4,7 @@ import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.incremental.CacheVersion
import java.io.File
internal const val GRADLE_CACHE_VERSION = 1
internal const val GRADLE_CACHE_VERSION = 2
internal const val GRADLE_CACHE_VERSION_FILE_NAME = "gradle-format-version.txt"
internal fun gradleCacheVersion(dataRoot: File): CacheVersion =