diff options
author | Deftu <deftudev@gmail.com> | 2023-08-25 12:29:39 +0200 |
---|---|---|
committer | Deftu <deftudev@gmail.com> | 2023-08-25 12:29:39 +0200 |
commit | fcd760df97454eeed436334808da51ea9ba20540 (patch) | |
tree | c36f7ce0456db1c185147ec36a205657caf37b6b | |
parent | 3a12dc22d6ec3924067c7b32582cb6a1ed113344 (diff) | |
download | Remap-fcd760df97454eeed436334808da51ea9ba20540.tar.gz Remap-fcd760df97454eeed436334808da51ea9ba20540.tar.bz2 Remap-fcd760df97454eeed436334808da51ea9ba20540.zip |
Add Kotlin 1.9.0 support
-rw-r--r-- | build.gradle.kts | 3 | ||||
-rw-r--r-- | src/kotlin190/kotlin/com/replaymod/gradle/remap/kotlin190.kt | 11 | ||||
-rw-r--r-- | src/main/kotlin/com/replaymod/gradle/remap/Transformer.kt | 8 | ||||
-rw-r--r-- | src/main/kotlin/com/replaymod/gradle/remap/version.kt | 29 |
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) + } +} |