aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle.kts10
-rw-r--r--src/kotlin1521/kotlin/com/replaymod/gradle/remap/kotlin1521.kt3
-rw-r--r--src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt5
-rw-r--r--src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt8
4 files changed, 23 insertions, 3 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index b6214a3..4215a6a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,7 +1,7 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
- kotlin("jvm") version "1.5.21"
+ kotlin("jvm") version "1.9.23"
`maven-publish`
}
@@ -22,6 +22,7 @@ val testB by sourceSets.creating
kotlinVersion("1.5.21", isPrimaryVersion = true)
kotlinVersion("1.6.20")
+kotlinVersion("1.9.0")
dependencies {
api("org.jetbrains.kotlin:kotlin-compiler-embeddable:1.5.21")
@@ -53,6 +54,13 @@ tasks.test {
useJUnitPlatform()
}
+tasks.withType<KotlinCompile> {
+ kotlinOptions {
+ apiVersion = "1.5"
+ languageVersion = "1.5"
+ }
+}
+
fun kotlinVersion(version: String, isPrimaryVersion: Boolean = false) {
val name = version.replace(".", "")
diff --git a/src/kotlin1521/kotlin/com/replaymod/gradle/remap/kotlin1521.kt b/src/kotlin1521/kotlin/com/replaymod/gradle/remap/kotlin1521.kt
index c63cb98..3031a9a 100644
--- a/src/kotlin1521/kotlin/com/replaymod/gradle/remap/kotlin1521.kt
+++ b/src/kotlin1521/kotlin/com/replaymod/gradle/remap/kotlin1521.kt
@@ -1,6 +1,7 @@
package com.replaymod.gradle.remap
import org.jetbrains.kotlin.analyzer.AnalysisResult
+import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
@@ -16,3 +17,5 @@ fun analyze1521(environment: KotlinCoreEnvironment, ktFiles: List<KtFile>): Anal
{ scope: GlobalSearchScope -> environment.createPackagePartProvider(scope) }
)
}
+
+fun kotlinSourceRoot1521(path: String, isCommon: Boolean) = KotlinSourceRoot(path, isCommon)
diff --git a/src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt b/src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt
new file mode 100644
index 0000000..fecaa66
--- /dev/null
+++ b/src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt
@@ -0,0 +1,5 @@
+package com.replaymod.gradle.remap
+
+import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
+
+fun kotlinSourceRoot190(path: String, isCommon: Boolean) = KotlinSourceRoot(path, isCommon, null)
diff --git a/src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt b/src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt
index 6e8dae1..0845e0d 100644
--- a/src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt
+++ b/src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt
@@ -4,7 +4,6 @@ import com.replaymod.gradle.remap.legacy.LegacyMapping
import org.cadixdev.lorenz.MappingSet
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.config.ContentRoot
-import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
@@ -73,7 +72,12 @@ class Transformer(private val map: MappingSet) {
config.put(CommonConfigurationKeys.MODULE_NAME, "main")
jdkHome?.let {config.setupJdk(it) }
config.add<ContentRoot>(CLIConfigurationKeys.CONTENT_ROOTS, JavaSourceRoot(tmpDir.toFile(), ""))
- config.add<ContentRoot>(CLIConfigurationKeys.CONTENT_ROOTS, KotlinSourceRoot(tmpDir.toAbsolutePath().toString(), false))
+ val kotlinSourceRoot = try {
+ kotlinSourceRoot1521(tmpDir.toAbsolutePath().toString(), false)
+ } catch (e: NoSuchMethodError) {
+ kotlinSourceRoot190(tmpDir.toAbsolutePath().toString(), false)
+ }
+ config.add<ContentRoot>(CLIConfigurationKeys.CONTENT_ROOTS, kotlinSourceRoot)
config.addAll<ContentRoot>(CLIConfigurationKeys.CONTENT_ROOTS, classpath!!.map { JvmClasspathRoot(File(it)) })
config.put<MessageCollector>(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, PrintingMessageCollector(System.err, MessageRenderer.GRADLE_STYLE, true))