Gradle: support moduleName option in KotlinJvmOptions
#KT-42058 Fixed
This commit is contained in:
committed by
Alexander Udalov
parent
0edbdaf0c7
commit
cb5c317f91
+1
@@ -63,6 +63,7 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
|
|||||||
)
|
)
|
||||||
var scriptTemplates: Array<String>? by FreezableVar(null)
|
var scriptTemplates: Array<String>? by FreezableVar(null)
|
||||||
|
|
||||||
|
@GradleOption(DefaultValues.StringNullDefault::class)
|
||||||
@Argument(value = "-module-name", valueDescription = "<name>", description = "Name of the generated .kotlin_module file")
|
@Argument(value = "-module-name", valueDescription = "<name>", description = "Name of the generated .kotlin_module file")
|
||||||
var moduleName: String? by NullableStringFreezableVar(null)
|
var moduleName: String? by NullableStringFreezableVar(null)
|
||||||
|
|
||||||
|
|||||||
+10
@@ -73,6 +73,16 @@ class SimpleKotlinGradleIT : BaseGradleIT() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testModuleName() {
|
||||||
|
Project("moduleName").build("build") {
|
||||||
|
assertSuccessful()
|
||||||
|
assertFileExists("build/classes/kotlin/main/META-INF/FLAG.kotlin_module")
|
||||||
|
assertNoSuchFile("build/classes/kotlin/main/META-INF/moduleName.kotlin_module")
|
||||||
|
assertNotContains("Argument -module-name is passed multiple times")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testCustomJdk() {
|
fun testCustomJdk() {
|
||||||
Project("customJdk").build("build") {
|
Project("customJdk").build("build") {
|
||||||
|
|||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: "kotlin"
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
kotlin {
|
||||||
|
srcDir 'src'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||||
|
}
|
||||||
|
|
||||||
|
compileKotlin {
|
||||||
|
kotlinOptions.moduleName = "FLAG"
|
||||||
|
}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
interface A {
|
||||||
|
fun foo(): Int = 1
|
||||||
|
}
|
||||||
+6
@@ -29,6 +29,12 @@ interface KotlinJvmOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOption
|
|||||||
*/
|
*/
|
||||||
var jvmTarget: kotlin.String
|
var jvmTarget: kotlin.String
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the generated .kotlin_module file
|
||||||
|
* Default value: null
|
||||||
|
*/
|
||||||
|
var moduleName: kotlin.String?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't automatically include the Java runtime into the classpath
|
* Don't automatically include the Java runtime into the classpath
|
||||||
* Default value: false
|
* Default value: false
|
||||||
|
|||||||
+9
@@ -67,6 +67,13 @@ internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.K
|
|||||||
jvmTargetField = value
|
jvmTargetField = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var moduleNameField: kotlin.String?? = null
|
||||||
|
override var moduleName: kotlin.String?
|
||||||
|
get() = moduleNameField ?: null
|
||||||
|
set(value) {
|
||||||
|
moduleNameField = value
|
||||||
|
}
|
||||||
|
|
||||||
private var noJdkField: kotlin.Boolean? = null
|
private var noJdkField: kotlin.Boolean? = null
|
||||||
override var noJdk: kotlin.Boolean
|
override var noJdk: kotlin.Boolean
|
||||||
get() = noJdkField ?: false
|
get() = noJdkField ?: false
|
||||||
@@ -105,6 +112,7 @@ internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.K
|
|||||||
javaParametersField?.let { args.javaParameters = it }
|
javaParametersField?.let { args.javaParameters = it }
|
||||||
jdkHomeField?.let { args.jdkHome = it }
|
jdkHomeField?.let { args.jdkHome = it }
|
||||||
jvmTargetField?.let { args.jvmTarget = it }
|
jvmTargetField?.let { args.jvmTarget = it }
|
||||||
|
moduleNameField?.let { args.moduleName = it }
|
||||||
noJdkField?.let { args.noJdk = it }
|
noJdkField?.let { args.noJdk = it }
|
||||||
noReflectField?.let { args.noReflect = it }
|
noReflectField?.let { args.noReflect = it }
|
||||||
noStdlibField?.let { args.noStdlib = it }
|
noStdlibField?.let { args.noStdlib = it }
|
||||||
@@ -122,6 +130,7 @@ internal fun org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments.fi
|
|||||||
javaParameters = false
|
javaParameters = false
|
||||||
jdkHome = null
|
jdkHome = null
|
||||||
jvmTarget = "1.6"
|
jvmTarget = "1.6"
|
||||||
|
moduleName = null
|
||||||
noJdk = false
|
noJdk = false
|
||||||
noReflect = true
|
noReflect = true
|
||||||
noStdlib = true
|
noStdlib = true
|
||||||
|
|||||||
Reference in New Issue
Block a user