Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 47 additions & 37 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
plugins {
id("fabric-loom") version "1.11-SNAPSHOT"
id("maven-publish")
id("com.gradleup.shadow") version "9.2.2"
}

base {
Expand Down Expand Up @@ -50,7 +49,7 @@ repositories {
}

val modInclude: Configuration by configurations.creating
val library: Configuration by configurations.creating
val jij: Configuration by configurations.creating

configurations {
// include mods
Expand All @@ -61,12 +60,12 @@ configurations {
extendsFrom(modInclude)
}

// include libraries
// include libraries (jar-in-jar)
implementation.configure {
extendsFrom(library)
extendsFrom(jij)
}
shadow.configure {
extendsFrom(library)
include.configure {
extendsFrom(jij)
}
}

Expand All @@ -93,16 +92,44 @@ dependencies {
modCompileOnly("com.terraformersmc:modmenu:${properties["modmenu_version"] as String}")

// Libraries
library("meteordevelopment:orbit:${properties["orbit_version"] as String}")
library("org.meteordev:starscript:${properties["starscript_version"] as String}")
library("meteordevelopment:discord-ipc:${properties["discordipc_version"] as String}")
library("org.reflections:reflections:${properties["reflections_version"] as String}")
library("io.netty:netty-handler-proxy:${properties["netty_version"] as String}") { isTransitive = false }
library("io.netty:netty-codec-socks:${properties["netty_version"] as String}") { isTransitive = false }
library("de.florianmichael:WaybackAuthLib:${properties["waybackauthlib_version"] as String}")

// Launch sub project
shadow(project(":launch"))
jij("meteordevelopment:orbit:${properties["orbit_version"] as String}")
jij("org.meteordev:starscript:${properties["starscript_version"] as String}")
jij("meteordevelopment:discord-ipc:${properties["discordipc_version"] as String}")
jij("org.reflections:reflections:${properties["reflections_version"] as String}")
jij("io.netty:netty-handler-proxy:${properties["netty_version"] as String}") { isTransitive = false }
jij("io.netty:netty-codec-socks:${properties["netty_version"] as String}") { isTransitive = false }
jij("de.florianmichael:WaybackAuthLib:${properties["waybackauthlib_version"] as String}")
}

// Handle transitive dependencies for jar-in-jar
// Based on implementation from BaseProject by FlorianMichael/EnZaXD
// Source: https://github.com/FlorianMichael/BaseProject/blob/main/src/main/kotlin/de/florianmichael/baseproject/Fabric.kt
// Licensed under Apache License 2.0
afterEvaluate {
val jijConfig = configurations.findByName("jij") ?: return@afterEvaluate

// Dependencies to exclude from jar-in-jar
val excluded = setOf(
"org.slf4j", // Logging provided by Minecraft
"jsr305" // Compile time annotations only
)


jijConfig.incoming.resolutionResult.allDependencies.forEach { dep ->
val requested = dep.requested.displayName

if (excluded.any { requested.contains(it) }) return@forEach

val compileOnlyDep = dependencies.create(requested) {
isTransitive = false
}

val implDep = dependencies.create(compileOnlyDep)

dependencies.add("compileOnlyApi", compileOnlyDep)
dependencies.add("implementation", implDep)
dependencies.add("include", compileOnlyDep)
}
}

loom {
Expand Down Expand Up @@ -141,6 +168,10 @@ tasks {
rename { "${it}_${inputs.properties["archivesName"]}" }
}

// Launch sub project
dependsOn(":launch:compileJava")
from(project(":launch").layout.buildDirectory.dir("classes/java/main"))

manifest {
attributes["Main-Class"] = "meteordevelopment.meteorclient.Main"
}
Expand All @@ -162,27 +193,6 @@ tasks {
options.compilerArgs.add("-Xlint:unchecked")
}

shadowJar {
configurations = listOf(project.configurations.shadow.get())

inputs.property("archivesName", project.base.archivesName.get())

from("LICENSE") {
rename { "${it}_${inputs.properties["archivesName"]}" }
}

dependencies {
exclude {
it.moduleGroup == "org.slf4j"
}
}
}

remapJar {
dependsOn(shadowJar)
inputFile.set(shadowJar.get().archiveFile)
}

javadoc {
with(options as StandardJavadocDocletOptions) {
addStringOption("Xdoclint:none", "-quiet")
Expand Down