diff options
author | DJtheRedstoner <52044242+DJtheRedstoner@users.noreply.github.com> | 2024-04-25 04:18:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-25 10:18:36 +0200 |
commit | 9bb86792bf4740b6650ccd40b0d47318cf1a3929 (patch) | |
tree | 339575b9f17ff75a871b0500e1cd8031b89dd638 | |
parent | 3a12dc22d6ec3924067c7b32582cb6a1ed113344 (diff) | |
download | Remap-9bb86792bf4740b6650ccd40b0d47318cf1a3929.tar.gz Remap-9bb86792bf4740b6650ccd40b0d47318cf1a3929.tar.bz2 Remap-9bb86792bf4740b6650ccd40b0d47318cf1a3929.zip |
Add support for Kotlin 1.9.0 (#21)
The KotlinSourceRoot constructor was updated to include an additional
argument related to Kotlin Multiplatform. We always pass null for this
argument.
Co-authored-by: Wyvest <wyvestbusiness@gmail.com>
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)) |