diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt index 58b4b41a02b..d7edb933374 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt @@ -24,6 +24,7 @@ import com.intellij.openapi.externalSystem.model.project.ProjectId import com.intellij.openapi.module.Module import com.intellij.openapi.roots.ModifiableModelsProvider import com.intellij.openapi.roots.ModifiableRootModel +import org.gradle.util.GradleVersion import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.GSK_KOTLIN_VERSION_PROPERTY_NAME import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.getKotlinGradlePluginClassPathSnippet @@ -138,21 +139,33 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider : super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData) val jvmTarget = getDefaultJvmTarget(rootModel.sdk, bundledRuntimeVersion()) if (jvmTarget != null) { - buildScriptData - .addOther( - "tasks {\n" + - " compileKotlin {\n" + - " kotlinOptions {\n" + - " jvmTarget = \"8\"\n" + - " }\n" + - " }\n" + - "}" - ) + addJvmTargetTask(buildScriptData) } val artifactId = getStdlibArtifactId(rootModel.sdk, bundledRuntimeVersion()) buildScriptData.addDependencyNotation(composeDependency(buildScriptData, artifactId)) } + + private fun addJvmTargetTask(buildScriptData: BuildScriptDataBuilder) { + val minGradleVersion = GradleVersion.version("5.0") + if (buildScriptData.gradleVersion >= minGradleVersion) + buildScriptData + .addOther(""" + tasks { + compileKotlin { + kotlinOptions { + jvmTarget = "1.8" + } + } + }""".trimIndent() + ) + else { + buildScriptData + .addImport("import org.jetbrains.kotlin.gradle.tasks.KotlinCompile") + .addOther("tasks.withType {\n kotlinOptions.jvmTarget = \"1.8\"\n}\n") + } + + } } abstract class AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider(