Skip to content

Commit 1f83292

Browse files
committed
fix(mps-model-server-plugin): MPS 2022.3 requires Java 17
1 parent f5683c7 commit 1f83292

File tree

3 files changed

+52
-10
lines changed

3 files changed

+52
-10
lines changed

.github/workflows/mps-compatibility.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515

1616
steps:
1717
- uses: actions/checkout@v3
18-
- name: Set up JDK 11
18+
- name: Set up JDK 17
1919
uses: actions/setup-java@v3
2020
with:
2121
distribution: 'temurin'
22-
java-version: '11'
22+
java-version: '17'
2323
- name: Build with MPS 2020.3.6
2424
run: ./gradlew :mps-model-adapters:build :mps-model-server-plugin:build -Pmps.version=2020.3.6
2525
- name: Build with MPS 2021.1.4

build.gradle.kts

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ import kotlinx.html.unsafe
1919
import org.jetbrains.dokka.base.DokkaBase
2020
import org.jetbrains.dokka.base.DokkaBaseConfiguration
2121
import org.jetbrains.dokka.gradle.DokkaTaskPartial
22+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
23+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
2224
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
2325
import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper
26+
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin
2427
import org.semver.Version
2528

2629
buildscript {
@@ -63,6 +66,7 @@ dependencies {
6366
}
6467

6568
subprojects {
69+
val subproject = this
6670
apply(plugin = "maven-publish")
6771
apply(plugin = "org.jetbrains.dokka")
6872
apply(plugin = "org.jlleitschuh.gradle.ktlint")
@@ -82,18 +86,42 @@ subprojects {
8286
}
8387

8488
val kotlinApiVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_6
85-
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().all {
89+
subproject.tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
8690
if (!name.lowercase().contains("test")) {
87-
kotlinOptions {
91+
this.kotlinOptions {
8892
jvmTarget = "11"
8993
freeCompilerArgs += listOf("-Xjvm-default=all-compatibility")
9094
apiVersion = kotlinApiVersion.version
9195
}
9296
}
9397
}
98+
subproject.tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile>().configureEach {
99+
if (!name.lowercase().contains("test")) {
100+
this.kotlinOptions {
101+
jvmTarget = "11"
102+
freeCompilerArgs += listOf("-Xjvm-default=all-compatibility")
103+
apiVersion = kotlinApiVersion.version
104+
}
105+
}
106+
}
107+
108+
subproject.plugins.withType<JavaPlugin> {
109+
subproject.extensions.configure<JavaPluginExtension> {
110+
sourceCompatibility = JavaVersion.VERSION_11
111+
targetCompatibility = JavaVersion.VERSION_11
112+
}
113+
}
114+
115+
subproject.plugins.withType<KotlinPlatformJvmPlugin> {
116+
subproject.extensions.configure<KotlinJvmProjectExtension> {
117+
compilerOptions {
118+
jvmTarget.set(JvmTarget.JVM_11)
119+
}
120+
}
121+
}
94122

95-
plugins.withType<KotlinMultiplatformPluginWrapper> {
96-
project.extensions.configure<KotlinMultiplatformExtension> {
123+
subproject.plugins.withType<KotlinMultiplatformPluginWrapper> {
124+
subproject.extensions.configure<KotlinMultiplatformExtension> {
97125
sourceSets.all {
98126
if (!name.lowercase().contains("test")) {
99127
languageSettings {
@@ -104,8 +132,8 @@ subprojects {
104132
}
105133
}
106134

107-
plugins.withType<NodePlugin> {
108-
project.extensions.configure<NodeExtension> {
135+
subproject.plugins.withType<NodePlugin> {
136+
subproject.extensions.configure<NodeExtension> {
109137
version.set(libs.versions.node)
110138
download.set(true)
111139
}

mps-model-server-plugin/build.gradle.kts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
13
plugins {
24
id("org.jetbrains.kotlin.jvm")
35
id("org.jetbrains.intellij") version "1.15.0"
@@ -18,7 +20,8 @@ if (!mpsToIdeaMap.containsKey(mpsVersion)) {
1820
}
1921
// identify the corresponding intelliJ platform version used by the MPS version
2022
val ideaVersion = mpsToIdeaMap.getValue(mpsVersion)
21-
println("Building for MPS version $mpsVersion and IntelliJ version $ideaVersion")
23+
val mpsJavaVersion = if (mpsVersion >= "2022.3") 17 else 11
24+
println("Building for MPS version $mpsVersion and IntelliJ version $ideaVersion and Java $mpsJavaVersion")
2225

2326
dependencies {
2427
implementation(project(":model-server-lib"))
@@ -41,9 +44,20 @@ intellij {
4144
// plugins.set(listOf("jetbrains.mps.core", "com.intellij.modules.mps"))
4245
}
4346

47+
java {
48+
sourceCompatibility = JavaVersion.toVersion(mpsJavaVersion)
49+
targetCompatibility = JavaVersion.toVersion(mpsJavaVersion)
50+
}
51+
52+
kotlin {
53+
compilerOptions {
54+
jvmTarget.set(JvmTarget.fromTarget(mpsJavaVersion.toString()))
55+
}
56+
}
57+
4458
tasks {
4559
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
46-
kotlinOptions.jvmTarget = "11"
60+
kotlinOptions.jvmTarget = mpsJavaVersion.toString()
4761
}
4862

4963
patchPluginXml {

0 commit comments

Comments
 (0)