aboutsummaryrefslogtreecommitdiff
path: root/build.gradle.kts
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2024-04-22 11:45:08 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2024-04-22 11:45:08 +0200
commite76b3561bf60f62afcf4a4d667492beb85f35f85 (patch)
treeb98c2e9277a083699b5fbe14fc5e768506c1ca64 /build.gradle.kts
parent59d5e664cd5cd5b6fc4a40d4ecfee3842871bb2e (diff)
downloadskyhanni-e76b3561bf60f62afcf4a4d667492beb85f35f85.tar.gz
skyhanni-e76b3561bf60f62afcf4a4d667492beb85f35f85.tar.bz2
skyhanni-e76b3561bf60f62afcf4a4d667492beb85f35f85.zip
Revert "Backend: Add unimined build system (#1456)"
This reverts commit 40309bc8acb7afb37bbc99d7a758c24ffd962b4c.
Diffstat (limited to 'build.gradle.kts')
-rw-r--r--build.gradle.kts236
1 files changed, 81 insertions, 155 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index f0553f106..5503faaa7 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,13 +1,12 @@
+import org.apache.commons.lang3.SystemUtils
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-import xyz.wagyourtail.unimined.api.minecraft.MinecraftConfig
-import xyz.wagyourtail.unimined.api.minecraft.task.RemapJarTask
-import xyz.wagyourtail.unimined.api.runs.RunConfig
import java.io.ByteArrayOutputStream
plugins {
idea
java
- id("xyz.wagyourtail.unimined") version "1.2.0-SNAPSHOT"
+ id("gg.essential.loom") version "0.10.0.+"
+ id("dev.architectury.architectury-pack200") version "0.1.3"
id("com.github.johnrengelman.shadow") version "7.1.2"
kotlin("jvm") version "1.9.0"
id("com.bnorm.power.kotlin-power-assert") version "0.13.0"
@@ -39,10 +38,6 @@ sourceSets.main {
kotlin.destinationDirectory.set(java.destinationDirectory)
}
-val patternSourceSet = sourceSets.create("pattern") {
- this.runtimeClasspath += sourceSets.main.get().runtimeClasspath
-}
-
repositories {
mavenCentral()
mavenLocal()
@@ -56,19 +51,15 @@ repositories {
maven("https://repo.nea.moe/releases")
maven("https://maven.notenoughupdates.org/releases")
maven("https://repo.hypixel.net/repository/Hypixel/")
- ivy("https://repo1.maven.org/maven2/org/apache/logging/log4j") {
- this.content {
- this.includeGroup("log4jhack")
- }
- this.patternLayout {
- this.artifact("log4j-[artifact]/[revision]/log4j-[artifact]-[revision].[ext]")
- }
- this.metadataSources {
- this.artifact()
- }
- }
}
+val shadowImpl: Configuration by configurations.creating {
+ configurations.implementation.get().extendsFrom(this)
+}
+
+val shadowModImpl: Configuration by configurations.creating {
+ configurations.modImplementation.get().extendsFrom(this)
+}
val devenvMod: Configuration by configurations.creating {
isTransitive = false
@@ -82,125 +73,10 @@ val headlessLwjgl by configurations.creating {
val shot = shots.shot("minecraft", project.file("shots.txt"))
-val modRuntimeOnly by configurations.creating {
- configurations.runtimeOnly.get().extendsFrom(this)
-}
-val modCompileOnly by configurations.creating {
- configurations.compileOnly.get().extendsFrom(this)
-}
-
-fun RunConfig.setBaseConfig() {
- val runDir = file("run").absoluteFile
- this.javaVersion = JavaVersion.VERSION_1_8
- this.args.addAll(
- listOf(
- "--tweakClass",
- "org.spongepowered.asm.launch.MixinTweaker",
- "--tweakClass",
- "io.github.notenoughupdates.moulconfig.tweaker.DevelopmentResourceTweaker",
- "--mods",
- devenvMod.resolve().joinToString(",") { it.relativeTo(runDir).path }
- )
- )
- this.args.set(
- this.args.indexOf("--gameDir") + 1,
- runDir.absolutePath
- )
- this.jvmArgs.removeIf { it.startsWith("-Xmx") || it.startsWith("-XX:") }
- this.jvmArgs.addAll(
- listOf(
- "-Xmx4G",
- "-Dmixin.debug=true",
- "-Dlog4j.configurationFile=${project.file("log4j2.xml").absolutePath}"
- )
- )
- this.workingDir = runDir
- if (System.getenv("repo_action") != "true") {
- this.jvmArgs.add("-Ddevauth.configDir=${rootProject.file(".devauth").absolutePath}")
- }
- this.env.putAll(parseEnvFile(file(".env")))
-}
-
-fun MinecraftConfig.defaultMinecraft() {
- this.version("1.8.9")
- this.mappings {
- this.searge()
- this.mcp("stable", "22-1.8.9")
- }
- this.minecraftForge {
- this.loader("11.15.1.2318-1.8.9")
- this.mixinConfig("mixins.skyhanni.json")
- }
-}
-
-unimined.minecraft {
- this.defaultMinecraft()
- this.runs {
- this.config("client") {
- this.setBaseConfig()
- }
- this.config("server") {
- this.disabled = true
- }
- }
- this.mods {
- this.remap(modRuntimeOnly)
- this.remap(devenvMod)
- this.remap(modCompileOnly)
- }
-}
-
-unimined.minecraft(patternSourceSet) {
- this.defaultMinecraft()
- this.runs {
- this.config("client") {
- this.setBaseConfig()
- this.jvmArgs.addAll(
- listOf(
- "-Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true",
- "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006",
- "-javaagent:${headlessLwjgl.singleFile.absolutePath}"
- )
- )
- val outputFile = project.file("build/regexes/constants.json")
- this.env.put("SKYHANNI_DUMP_REGEXES", "${gitHash}:${outputFile.absolutePath}")
- this.env.put("SKYHANNI_DUMP_REGEXES_EXIT", "true")
- }
- this.config("server") {
- this.disabled = true
- }
- }
-}
-unimined.minecraft(sourceSets.test.get()) {
- this.defaultMinecraft()
- this.runs {
- this.off = true
- }
-}
-val modImplementation by configurations
-val testModImplementation by configurations
-val patternModImplementation by configurations
-
-testModImplementation.extendsFrom(modImplementation)
-patternModImplementation.extendsFrom(testModImplementation)
-
-val shadowImpl: Configuration by configurations.creating {
- configurations.implementation.get().extendsFrom(this)
-}
-
-val shadowModImpl: Configuration by configurations.creating {
- modImplementation.extendsFrom(this)
-
-}
-
-configurations.named("minecraftLibraries") {
- this.resolutionStrategy {
- this.force("org.apache.logging.log4j:log4j-core:2.8.1")
- this.force("org.apache.logging.log4j:log4j-api:2.8.1")
- }
-}
-
dependencies {
+ minecraft("com.mojang:minecraft:1.8.9")
+ mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9")
+ forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9")
// Discord RPC client
shadowImpl("com.github.NetheriteMiner:DiscordIPC:3106be5") {
@@ -216,13 +92,14 @@ dependencies {
shadowImpl("org.spongepowered:mixin:0.7.11-SNAPSHOT") {
isTransitive = false
}
+ annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT")
implementation(kotlin("stdlib-jdk8"))
shadowImpl("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") {
exclude(group = "org.jetbrains.kotlin")
}
- modRuntimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.2.0")
+ modRuntimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.1.0")
modCompileOnly("com.github.hannibal002:notenoughupdates:4957f0b:all") {
exclude(module = "unspecified")
@@ -247,11 +124,9 @@ dependencies {
testImplementation("io.mockk:mockk:1.12.5")
implementation("net.hypixel:mod-api:0.3.1")
-
- runtimeOnly(libs.terminalConsoleAppender)
- // Manually load 2.0-beta.9 on the class path *after* loading 2.8.X, since forge uses some of the helper classes only available in this version.
- runtimeOnly("log4jhack:api:2.0-beta9")
- runtimeOnly("log4jhack:core:2.0-beta9")
+}
+configurations.getByName("minecraftNamed").dependencies.forEach {
+ shot.applyTo(it as HasConfigurableAttributes<*>)
}
tasks.withType(Test::class) {
@@ -270,19 +145,64 @@ kotlin {
}
}
+// Minecraft configuration:
+loom {
+ launchConfigs {
+ "client" {
+ property("mixin.debug", "true")
+ if (System.getenv("repo_action") != "true") {
+ property("devauth.configDir", rootProject.file(".devauth").absolutePath)
+ }
+ arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
+ arg("--tweakClass", "io.github.notenoughupdates.moulconfig.tweaker.DevelopmentResourceTweaker")
+ arg("--mods", devenvMod.resolve().joinToString(",") { it.relativeTo(file("run")).path })
+ }
+ }
+ forge {
+ pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter())
+ mixinConfig("mixins.skyhanni.json")
+ }
+ @Suppress("UnstableApiUsage")
+ mixin {
+ defaultRefmapName.set("mixins.skyhanni.refmap.json")
+ }
+ runConfigs {
+ "client" {
+ if (SystemUtils.IS_OS_MAC_OSX) {
+ vmArgs.remove("-XstartOnFirstThread")
+ }
+ vmArgs.add("-Xmx4G")
+ }
+ "server" {
+ isIdeConfigGenerated = false
+ }
+ }
+}
+
// Tasks:
tasks.processResources {
inputs.property("version", version)
filesMatching("mcmod.info") {
expand("version" to version)
}
- this.filesMatching("mixins.skyhanni.json") {
- this.autoDiscoverMixins(sourceSets.main.get())
- }
}
-val generateRepoPatterns by tasks.creating() {
- afterEvaluate { dependsOn(tasks["patternRunClient"]) }
+val generateRepoPatterns by tasks.creating(JavaExec::class) {
+ javaLauncher.set(javaToolchains.launcherFor(java.toolchain))
+ mainClass.set("net.fabricmc.devlaunchinjector.Main")
+ workingDir(project.file("run"))
+ classpath(sourceSets.main.map { it.runtimeClasspath }, sourceSets.main.map { it.output })
+ jvmArgs(
+ "-Dfabric.dli.config=${project.file(".gradle/loom-cache/launch.cfg").absolutePath}",
+ "-Dfabric.dli.env=client",
+ "-Dfabric.dli.main=net.minecraft.launchwrapper.Launch",
+ "-Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true",
+ "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006",
+ "-javaagent:${headlessLwjgl.singleFile.absolutePath}"
+ )
+ val outputFile = project.file("build/regexes/constants.json")
+ environment("SKYHANNI_DUMP_REGEXES", "${gitHash}:${outputFile.absolutePath}")
+ environment("SKYHANNI_DUMP_REGEXES_EXIT", "true")
}
tasks.compileJava {
@@ -295,9 +215,6 @@ tasks.withType(JavaCompile::class) {
tasks.withType(Jar::class) {
archiveBaseName.set("SkyHanni")
- if (this.name != "remapJar") {
- this.destinationDirectory.set(layout.buildDirectory.dir("badjars"))
- }
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest.attributes.run {
this["FMLCorePluginContainsFMLMod"] = "true"
@@ -310,14 +227,21 @@ tasks.withType(Jar::class) {
}
-val remapJar by tasks.named<RemapJarTask>("remapJar") {
+val remapJar by tasks.named<net.fabricmc.loom.task.RemapJarTask>("remapJar") {
archiveClassifier.set("")
- inputFile.set(tasks.shadowJar.flatMap { it.archiveFile })
+ from(tasks.shadowJar)
+ input.set(tasks.shadowJar.get().archiveFile)
}
tasks.shadowJar {
+ destinationDirectory.set(layout.buildDirectory.dir("badjars"))
archiveClassifier.set("all-dev")
configurations = listOf(shadowImpl, shadowModImpl)
+ doLast {
+ configurations.forEach {
+ println("Config: ${it.files}")
+ }
+ }
exclude("META-INF/versions/**")
mergeServiceFiles()
relocate("io.github.notenoughupdates.moulconfig", "at.hannibal2.skyhanni.deps.moulconfig")
@@ -325,8 +249,9 @@ tasks.shadowJar {
}
tasks.jar {
archiveClassifier.set("nodeps")
+ destinationDirectory.set(layout.buildDirectory.dir("badjars"))
}
-tasks.assemble.get().dependsOn(remapJar)
+tasks.assemble.get().dependsOn(tasks.remapJar)
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions {
@@ -337,13 +262,14 @@ compileTestKotlin.kotlinOptions {
jvmTarget = "1.8"
}
val sourcesJar by tasks.creating(Jar::class) {
+ destinationDirectory.set(layout.buildDirectory.dir("badjars"))
archiveClassifier.set("src")
from(sourceSets.main.get().allSource)
}
publishing.publications {
create<MavenPublication>("maven") {
- artifact(remapJar)
+ artifact(tasks.remapJar)
artifact(sourcesJar) { classifier = "sources" }
pom {
name.set("SkyHanni")