aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeftu <deftudev@gmail.com>2023-08-25 12:29:39 +0200
committerDeftu <deftudev@gmail.com>2023-08-25 12:29:39 +0200
commitfcd760df97454eeed436334808da51ea9ba20540 (patch)
treec36f7ce0456db1c185147ec36a205657caf37b6b
parent3a12dc22d6ec3924067c7b32582cb6a1ed113344 (diff)
downloadRemap-fcd760df97454eeed436334808da51ea9ba20540.tar.gz
Remap-fcd760df97454eeed436334808da51ea9ba20540.tar.bz2
Remap-fcd760df97454eeed436334808da51ea9ba20540.zip
Add Kotlin 1.9.0 support
-rw-r--r--build.gradle.kts3
-rw-r--r--src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt11
-rw-r--r--src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt8
-rw-r--r--src/main/kotlin/com/replaymod/gradle/remap/version.kt29
4 files changed, 44 insertions, 7 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index b6214a3..d8ccda8 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.0"
`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")
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..0d05a7f
--- /dev/null
+++ b/src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt
@@ -0,0 +1,11 @@
+package com.replaymod.gradle.remap
+
+import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
+import java.nio.file.Path
+
+fun createSourceRoot190(
+ tempDir: Path,
+ isCommon: Boolean
+): KotlinSourceRoot {
+ return KotlinSourceRoot(tempDir.toString(), 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..b26c987 100644
--- a/src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt
+++ b/src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt
@@ -73,7 +73,7 @@ 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))
+ config.add<ContentRoot>(CLIConfigurationKeys.CONTENT_ROOTS, createSourceRoot(tmpDir.toAbsolutePath(), false))
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))
@@ -99,11 +99,7 @@ class Transformer(private val map: MappingSet) {
val psiFiles = virtualFiles.mapValues { psiManager.findFile(it.value)!! }
val ktFiles = psiFiles.values.filterIsInstance<KtFile>()
- val analysis = try {
- analyze1521(environment, ktFiles)
- } catch (e: NoSuchMethodError) {
- analyze1620(environment, ktFiles)
- }
+ val analysis = analyze(environment, ktFiles)
val remappedEnv = remappedClasspath?.let {
setupRemappedProject(disposable, it, processedTmpDir)
diff --git a/src/main/kotlin/com/replaymod/gradle/remap/version.kt b/src/main/kotlin/com/replaymod/gradle/remap/version.kt
new file mode 100644
index 0000000..79b133e
--- /dev/null
+++ b/src/main/kotlin/com/replaymod/gradle/remap/version.kt
@@ -0,0 +1,29 @@
+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.psi.KtFile
+import java.nio.file.Path
+
+fun analyze(
+ environment: KotlinCoreEnvironment,
+ ktFiles: List<KtFile>
+): AnalysisResult {
+ return try {
+ analyze1521(environment, ktFiles)
+ } catch (e: Throwable) {
+ analyze1620(environment, ktFiles)
+ }
+}
+
+fun createSourceRoot(
+ tempDir: Path,
+ isCommon: Boolean
+): KotlinSourceRoot {
+ return try {
+ KotlinSourceRoot(tempDir.toString(), isCommon)
+ } catch (e: Throwable) {
+ createSourceRoot190(tempDir, isCommon)
+ }
+}