Fix kotlin module name for gradle plugin

This commit is contained in:
Michael Bogdanov
2015-09-08 16:17:29 +03:00
parent 4d871ef2c6
commit 0f6bf80c0a
9 changed files with 143 additions and 1 deletions
@@ -97,7 +97,7 @@ abstract class KotlinSourceSetProcessor<T : AbstractCompile>(
val name = sourceSet.getCompileTaskName(compileTaskNameSuffix) + suffix
logger.kotlinDebug("Creating kotlin compile task $name with class $compilerClass")
val compile = project.getTasks().create(name, compilerClass)
compile.extensions.extraProperties.set("defaultModuleName", name)
compile.extensions.extraProperties.set("defaultModuleName", "${project.name}-$name")
return compile
}
@@ -60,6 +60,20 @@ class SimpleKotlinGradleIT : BaseGradleIT() {
}
}
Test fun testKotlinCustomModuleName() {
Project("moduleNameCustom", "1.6").build("build") {
assertSuccessful()
assertContains("args.moduleName = myTestName")
}
}
Test fun testKotlinDefaultModuleName() {
Project("moduleNameDefault", "1.6").build("build") {
assertSuccessful()
assertContains("args.moduleName = moduleNameDefault-compileKotlin")
}
}
Test fun testAdvancedOptions() {
Project("advancedOptions", "1.6").build("build") {
assertSuccessful()
@@ -52,4 +52,20 @@ class KotlinAndroidGradleIT: BaseGradleIT() {
":compileFlavor2Release")
}
}
Test fun testModuleNameAndroid() {
val project = Project("AndroidProject", "2.3")
project.build("build") {
assertContains(
"args.moduleName = Lib-compileReleaseKotlin",
"args.moduleName = Lib-compileDebugKotlin",
"args.moduleName = Android-compileFlavor1DebugKotlin",
"args.moduleName = Android-compileFlavor2DebugKotlin",
"args.moduleName = Android-compileFlavor1JnidebugKotlin",
"args.moduleName = Android-compileFlavor2JnidebugKotlin",
"args.moduleName = Android-compileFlavor1ReleaseKotlin",
"args.moduleName = Android-compileFlavor2ReleaseKotlin")
}
}
}
@@ -0,0 +1,38 @@
buildscript {
repositories {
mavenCentral()
maven {
url 'file://' + pathToKotlinPlugin
}
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
}
}
apply plugin: "kotlin"
repositories {
maven {
url 'file://' + pathToKotlinPlugin
}
mavenCentral()
}
dependencies {
testCompile 'org.testng:testng:6.8'
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.1-SNAPSHOT'
}
test {
useTestNG()
}
compileKotlin {
kotlinOptions.moduleName = "myTestName"
}
task wrapper(type: Wrapper) {
gradleVersion="1.4"
}
@@ -0,0 +1,9 @@
package demo
public fun isModuleFileExists(): Boolean {
val systemClassLoader = ClassLoader.getSystemClassLoader()
val moduleFile = "META-INF/myTestName.kotlin_module"
val resourceAsStream = systemClassLoader.getResourceAsStream(moduleFile)
return resourceAsStream != null
}
@@ -0,0 +1,11 @@
package demo
import org.testng.Assert.assertTrue
import org.testng.annotations.Test as test
class TestSource() {
test fun f() {
assertTrue(isModuleFileExists(), "Kotlin module file should exists")
}
}
@@ -0,0 +1,33 @@
buildscript {
repositories {
mavenCentral()
maven {
url 'file://' + pathToKotlinPlugin
}
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
}
}
apply plugin: "kotlin"
repositories {
maven {
url 'file://' + pathToKotlinPlugin
}
mavenCentral()
}
dependencies {
testCompile 'org.testng:testng:6.8'
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.1-SNAPSHOT'
}
test {
useTestNG()
}
task wrapper(type: Wrapper) {
gradleVersion="1.4"
}
@@ -0,0 +1,10 @@
package demo
public fun isModuleFileExists(): Boolean {
val systemClassLoader = ClassLoader.getSystemClassLoader()
val moduleFile = "META-INF/moduleNameDefault-compileKotlin.kotlin_module"
val resourceAsStream = systemClassLoader.getResourceAsStream(moduleFile)
return resourceAsStream != null
}
@@ -0,0 +1,11 @@
package demo
import org.testng.Assert.assertTrue
import org.testng.annotations.Test as test
class TestSource() {
test fun f() {
assertTrue(isModuleFileExists(), "Kotlin module file should exists")
}
}