mirror of
https://github.com/architectury/architectury-plugin.git
synced 2026-03-28 04:07:01 -05:00
Fix support for Loom 0.10.0.188
Signed-off-by: shedaniel <daniel@shedaniel.me>
This commit is contained in:
11
build.gradle
11
build.gradle
@@ -52,6 +52,14 @@ sourceSets {
|
||||
runtimeClasspath += main.output
|
||||
}
|
||||
}
|
||||
loom010Legacy {
|
||||
java {
|
||||
compileClasspath += main.compileClasspath
|
||||
runtimeClasspath += main.runtimeClasspath
|
||||
compileClasspath += main.output
|
||||
runtimeClasspath += main.output
|
||||
}
|
||||
}
|
||||
loom010 {
|
||||
java {
|
||||
compileClasspath += main.compileClasspath
|
||||
@@ -70,6 +78,7 @@ dependencies {
|
||||
implementation "dev.architectury:architectury-transformer:$transformer_version"
|
||||
loom06CompileOnly "me.shedaniel:forgified-fabric-loom:$loom_version_06"
|
||||
loom09CompileOnly "dev.architectury:architectury-loom:$loom_version_09"
|
||||
loom010LegacyCompileOnly "dev.architectury:architectury-loom:$loom_version_010Legacy"
|
||||
loom010CompileOnly "dev.architectury:architectury-loom:$loom_version_010"
|
||||
implementation "dev.architectury:tiny-remapper:1.1.0"
|
||||
implementation "com.google.code.gson:gson:2.8.5"
|
||||
@@ -87,7 +96,7 @@ jar {
|
||||
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 {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
kotlin.code.style=official
|
||||
loom_version_06=0.6.96
|
||||
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
|
||||
base_version=3.4
|
||||
@@ -52,10 +52,8 @@ class LoomInterface010(private val project: Project) : LoomInterface {
|
||||
config.mainClass = value
|
||||
}
|
||||
|
||||
override var vmArgs: String
|
||||
get() = config.vmArgs
|
||||
set(value) {
|
||||
config.vmArgs = value
|
||||
}
|
||||
override fun addVmArg(vmArg: String) {
|
||||
config.vmArgs.add(vmArg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,10 +55,8 @@ class LoomInterface06(private val project: Project) : LoomInterface {
|
||||
config.mainClass = value
|
||||
}
|
||||
|
||||
override var vmArgs: String
|
||||
get() = config.vmArgs
|
||||
set(value) {
|
||||
config.vmArgs = value
|
||||
}
|
||||
override fun addVmArg(vmArg: String) {
|
||||
config.vmArgs += " $vmArg"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -52,10 +52,8 @@ class LoomInterface09(private val project: Project) : LoomInterface {
|
||||
config.mainClass = value
|
||||
}
|
||||
|
||||
override var vmArgs: String
|
||||
get() = config.vmArgs
|
||||
set(value) {
|
||||
config.vmArgs = value
|
||||
}
|
||||
override fun addVmArg(vmArg: String) {
|
||||
config.vmArgs += " $vmArg"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,12 +137,16 @@ open class ArchitectPluginExtension(val project: Project) {
|
||||
plsAddInjectables = true
|
||||
}
|
||||
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
|
||||
|
||||
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(
|
||||
"architecturyJavaAgents",
|
||||
"dev.architectury:architectury-transformer:$transformerVersion:agent"
|
||||
@@ -163,15 +167,15 @@ open class ArchitectPluginExtension(val project: Project) {
|
||||
val s = config.mainClass
|
||||
config.mainClass = "dev.architectury.transformer.TransformerRuntime"
|
||||
mainClassTransformerFile.writeText(s)
|
||||
config.vmArgs += " -Darchitectury.main.class=${mainClassTransformerFile.absolutePath.escapeSpaces()}"
|
||||
config.vmArgs += " -Darchitectury.runtime.transformer=${runtimeTransformerFile.absolutePath.escapeSpaces()}"
|
||||
config.vmArgs += " -Darchitectury.properties=${propertiesTransformerFile.absolutePath.escapeSpaces()}"
|
||||
config.vmArgs += " -Djdk.attach.allowAttachSelf=true"
|
||||
config.addVmArg("-Darchitectury.main.class=${mainClassTransformerFile.absolutePath.escapeSpaces()}")
|
||||
config.addVmArg("-Darchitectury.runtime.transformer=${runtimeTransformerFile.absolutePath.escapeSpaces()}")
|
||||
config.addVmArg("-Darchitectury.properties=${propertiesTransformerFile.absolutePath.escapeSpaces()}")
|
||||
config.addVmArg("-Djdk.attach.allowAttachSelf=true")
|
||||
if (architecturyJavaAgents.toList().size == 1) {
|
||||
if (!agentFile.exists() || agentFile.delete()) {
|
||||
architecturyJavaAgents.first().copyTo(agentFile, overwrite = true)
|
||||
}
|
||||
config.vmArgs += " -javaagent:${agentFile.absolutePath.escapeSpaces()}"
|
||||
config.addVmArg("-javaagent:${agentFile.absolutePath.escapeSpaces()}")
|
||||
} else {
|
||||
throw IllegalStateException(
|
||||
"Illegal Count of Architectury Java Agents! " + architecturyJavaAgents.toList()
|
||||
@@ -242,7 +246,10 @@ open class ArchitectPluginExtension(val project: Project) {
|
||||
}
|
||||
|
||||
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) {
|
||||
add(
|
||||
|
||||
@@ -18,6 +18,7 @@ interface LoomInterface {
|
||||
|
||||
interface LoomRunConfig {
|
||||
var mainClass: String
|
||||
var vmArgs: String
|
||||
|
||||
fun addVmArg(vmArg: String)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user