Fix support for Loom 0.10.0.188

Signed-off-by: shedaniel <daniel@shedaniel.me>
This commit is contained in:
shedaniel
2021-10-28 14:14:33 +08:00
parent 0be2c1ac60
commit 5c190d4d12
8 changed files with 97 additions and 26 deletions

View File

@@ -52,6 +52,14 @@ sourceSets {
runtimeClasspath += main.output runtimeClasspath += main.output
} }
} }
loom010Legacy {
java {
compileClasspath += main.compileClasspath
runtimeClasspath += main.runtimeClasspath
compileClasspath += main.output
runtimeClasspath += main.output
}
}
loom010 { loom010 {
java { java {
compileClasspath += main.compileClasspath compileClasspath += main.compileClasspath
@@ -70,6 +78,7 @@ dependencies {
implementation "dev.architectury:architectury-transformer:$transformer_version" implementation "dev.architectury:architectury-transformer:$transformer_version"
loom06CompileOnly "me.shedaniel:forgified-fabric-loom:$loom_version_06" loom06CompileOnly "me.shedaniel:forgified-fabric-loom:$loom_version_06"
loom09CompileOnly "dev.architectury:architectury-loom:$loom_version_09" loom09CompileOnly "dev.architectury:architectury-loom:$loom_version_09"
loom010LegacyCompileOnly "dev.architectury:architectury-loom:$loom_version_010Legacy"
loom010CompileOnly "dev.architectury:architectury-loom:$loom_version_010" loom010CompileOnly "dev.architectury:architectury-loom:$loom_version_010"
implementation "dev.architectury:tiny-remapper:1.1.0" implementation "dev.architectury:tiny-remapper:1.1.0"
implementation "com.google.code.gson:gson:2.8.5" implementation "com.google.code.gson:gson:2.8.5"
@@ -87,7 +96,7 @@ jar {
attributes 'Implementation-Version': project.version attributes 'Implementation-Version': project.version
} }
from sourceSets.loom06.output + sourceSets.loom09.output + sourceSets.loom010.output from sourceSets.loom06.output + sourceSets.loom09.output + sourceSets.loom010Legacy.output + sourceSets.loom010.output
} }
gradlePlugin { gradlePlugin {

View File

@@ -1,6 +1,7 @@
kotlin.code.style=official kotlin.code.style=official
loom_version_06=0.6.96 loom_version_06=0.6.96
loom_version_09=0.9.0.158 loom_version_09=0.9.0.158
loom_version_010=0.10.0.171 loom_version_010Legacy=0.10.0.171
loom_version_010=0.10.0.188
transformer_version=5.1.58 transformer_version=5.1.58
base_version=3.4 base_version=3.4

View File

@@ -52,10 +52,8 @@ class LoomInterface010(private val project: Project) : LoomInterface {
config.mainClass = value config.mainClass = value
} }
override var vmArgs: String override fun addVmArg(vmArg: String) {
get() = config.vmArgs config.vmArgs.add(vmArg)
set(value) { }
config.vmArgs = value
}
} }
} }

View File

@@ -0,0 +1,59 @@
package dev.architectury.plugin.loom
import net.fabricmc.loom.LoomGradleExtension
import net.fabricmc.loom.configuration.ide.RunConfig
import net.fabricmc.loom.task.RemapJarTask
import org.gradle.api.Project
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Provider
import org.gradle.jvm.tasks.Jar
import java.io.File
import java.nio.file.Path
import java.util.function.Consumer
class LoomInterface010Legacy(private val project: Project) : LoomInterface {
private val extension: LoomGradleExtension
get() = LoomGradleExtension.get(project)
override val allMixinMappings: Collection<File>
get() = extension.allMixinMappings
override val tinyMappingsWithSrg: Path
get() = extension.mappingsProvider.tinyMappingsWithSrg
override val refmapName: String
get() = extension.mixin.defaultRefmapName.get()
override var generateSrgTiny: Boolean
get() = extension.shouldGenerateSrgTiny()
set(value) {
extension.setGenerateSrgTiny(value)
}
override fun settingsPostEdit(action: (config: LoomInterface.LoomRunConfig) -> Unit) {
extension.settingsPostEdit.add(Consumer { c -> action(LoomRunConfigImpl(c)) })
}
override fun setIdeConfigGenerated() {
extension.runConfigs.forEach { it.isIdeConfigGenerated = true }
extension.runConfigs.whenObjectAdded { it.isIdeConfigGenerated = true }
extension.addTaskBeforeRun("\$PROJECT_DIR\$/${project.name}:classes")
}
override fun setRemapJarInput(task: Jar, archiveFile: Provider<RegularFile>) {
task as RemapJarTask
task.input.set(archiveFile)
}
class LoomRunConfigImpl(private val config: RunConfig) : LoomInterface.LoomRunConfig {
override var mainClass: String
get() = config.mainClass
set(value) {
config.mainClass = value
}
override fun addVmArg(vmArg: String) {
config.vmArgs += " $vmArg"
}
}
}

View File

@@ -55,10 +55,8 @@ class LoomInterface06(private val project: Project) : LoomInterface {
config.mainClass = value config.mainClass = value
} }
override var vmArgs: String override fun addVmArg(vmArg: String) {
get() = config.vmArgs config.vmArgs += " $vmArg"
set(value) { }
config.vmArgs = value
}
} }
} }

View File

@@ -52,10 +52,8 @@ class LoomInterface09(private val project: Project) : LoomInterface {
config.mainClass = value config.mainClass = value
} }
override var vmArgs: String override fun addVmArg(vmArg: String) {
get() = config.vmArgs config.vmArgs += " $vmArg"
set(value) { }
config.vmArgs = value
}
} }
} }

View File

@@ -137,12 +137,16 @@ open class ArchitectPluginExtension(val project: Project) {
plsAddInjectables = true plsAddInjectables = true
} }
val architecturyJavaAgents = project.configurations.create("architecturyJavaAgents") { val architecturyJavaAgents = project.configurations.create("architecturyJavaAgents") {
project.configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME).extendsFrom(it) project.configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)
.extendsFrom(it)
} }
transformedLoom = true transformedLoom = true
with(project.dependencies) { with(project.dependencies) {
add(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME, "dev.architectury:architectury-transformer:$transformerVersion:runtime") add(
JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME,
"dev.architectury:architectury-transformer:$transformerVersion:runtime"
)
add( add(
"architecturyJavaAgents", "architecturyJavaAgents",
"dev.architectury:architectury-transformer:$transformerVersion:agent" "dev.architectury:architectury-transformer:$transformerVersion:agent"
@@ -163,15 +167,15 @@ open class ArchitectPluginExtension(val project: Project) {
val s = config.mainClass val s = config.mainClass
config.mainClass = "dev.architectury.transformer.TransformerRuntime" config.mainClass = "dev.architectury.transformer.TransformerRuntime"
mainClassTransformerFile.writeText(s) mainClassTransformerFile.writeText(s)
config.vmArgs += " -Darchitectury.main.class=${mainClassTransformerFile.absolutePath.escapeSpaces()}" config.addVmArg("-Darchitectury.main.class=${mainClassTransformerFile.absolutePath.escapeSpaces()}")
config.vmArgs += " -Darchitectury.runtime.transformer=${runtimeTransformerFile.absolutePath.escapeSpaces()}" config.addVmArg("-Darchitectury.runtime.transformer=${runtimeTransformerFile.absolutePath.escapeSpaces()}")
config.vmArgs += " -Darchitectury.properties=${propertiesTransformerFile.absolutePath.escapeSpaces()}" config.addVmArg("-Darchitectury.properties=${propertiesTransformerFile.absolutePath.escapeSpaces()}")
config.vmArgs += " -Djdk.attach.allowAttachSelf=true" config.addVmArg("-Djdk.attach.allowAttachSelf=true")
if (architecturyJavaAgents.toList().size == 1) { if (architecturyJavaAgents.toList().size == 1) {
if (!agentFile.exists() || agentFile.delete()) { if (!agentFile.exists() || agentFile.delete()) {
architecturyJavaAgents.first().copyTo(agentFile, overwrite = true) architecturyJavaAgents.first().copyTo(agentFile, overwrite = true)
} }
config.vmArgs += " -javaagent:${agentFile.absolutePath.escapeSpaces()}" config.addVmArg("-javaagent:${agentFile.absolutePath.escapeSpaces()}")
} else { } else {
throw IllegalStateException( throw IllegalStateException(
"Illegal Count of Architectury Java Agents! " + architecturyJavaAgents.toList() "Illegal Count of Architectury Java Agents! " + architecturyJavaAgents.toList()
@@ -242,7 +246,10 @@ open class ArchitectPluginExtension(val project: Project) {
} }
with(project.dependencies) { with(project.dependencies) {
add(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME, "dev.architectury:architectury-injectables:$injectablesVersion") add(
JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME,
"dev.architectury:architectury-injectables:$injectablesVersion"
)
if (plsAddInjectables) { if (plsAddInjectables) {
add( add(

View File

@@ -18,6 +18,7 @@ interface LoomInterface {
interface LoomRunConfig { interface LoomRunConfig {
var mainClass: String var mainClass: String
var vmArgs: String
fun addVmArg(vmArg: String)
} }
} }