Set default jvmTarget in new JPS projects

This commit is contained in:
Dmitry Jemerov
2017-04-19 17:13:38 +02:00
parent 79f228153c
commit 98903d4e39
2 changed files with 20 additions and 0 deletions
@@ -20,6 +20,7 @@ import com.google.common.collect.Lists
import com.intellij.framework.library.LibraryVersionProperties
import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ModifiableRootModel
import com.intellij.openapi.roots.OrderRootType
import com.intellij.openapi.roots.libraries.Library
@@ -93,6 +94,9 @@ abstract class CustomLibraryDescriptorWithDeferredConfig
configurator.configureLibraryJar(model, jarState, copyToPath, jarDescriptor, collector)
}
}
configureKotlinSettings(module.project, rootModel.sdk)
collector.showNotification()
}
finally {
@@ -100,6 +104,9 @@ abstract class CustomLibraryDescriptorWithDeferredConfig
}
}
protected open fun configureKotlinSettings(project: Project, sdk: Sdk?) {
}
class DeferredCopyFileRequests(private val configurator: KotlinWithLibraryConfigurator) {
private val copyFilesRequests = Lists.newArrayList<CopyFileRequest>()
@@ -17,8 +17,12 @@
package org.jetbrains.kotlin.idea.framework
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.libraries.LibraryKind
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.configuration.KotlinJavaModuleConfigurator
import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion
import org.jetbrains.kotlin.idea.versions.getDefaultJvmTarget
/**
* @param project null when project doesn't exist yet (called from project wizard)
@@ -32,6 +36,15 @@ class JavaRuntimeLibraryDescription(project: Project?) :
KOTLIN_JAVA_RUNTIME_KIND,
SUITABLE_LIBRARY_KINDS) {
override fun configureKotlinSettings(project: Project, sdk: Sdk?) {
val defaultJvmTarget = getDefaultJvmTarget(sdk, bundledRuntimeVersion())
if (defaultJvmTarget != null) {
Kotlin2JvmCompilerArgumentsHolder.getInstance(project).update {
jvmTarget = defaultJvmTarget.description
}
}
}
companion object {
val KOTLIN_JAVA_RUNTIME_KIND = LibraryKind.create("kotlin-java-runtime")
val LIBRARY_NAME = "KotlinJavaRuntime"