Files
MinecraftForge/settings.gradle
T
LexManos e34090c809 Buildscript cleanup and organization.
Updated to use newer libraries that reduce the command line arguments needed to run the game.
Fix issues in the SecureModule's classloader that caused resources to not be seen when they are on parent module layers.
2023-10-24 16:24:13 -07:00

123 lines
6.3 KiB
Groovy

import org.gradle.internal.os.OperatingSystem
pluginManagement {
repositories {
gradlePluginPortal()
mavenLocal()
maven { url = 'https://maven.minecraftforge.net/' }
}
}
buildscript {
dependencies {
classpath('com.google.code.gson:gson') {
version {
strictly '2.10.1'
}
}
}
}
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0'
}
dependencyResolutionManagement {
versionCatalogs {
libs {
library('forgespi', 'net.minecraftforge:forgespi:7.1.0') // Needs modlauncher
library('bootstrap', 'net.minecraftforge:bootstrap:1.2.0') // Needs modlauncher
library('modlauncher', 'net.minecraftforge:modlauncher:10.1.1') // Needs securemodules
library('securemodules', 'net.minecraftforge:securemodules:2.2.3') // Needs unsafe
library('unsafe', 'net.minecraftforge:unsafe:0.9.2')
library('accesstransformers', 'net.minecraftforge:accesstransformers:8.1.1')
library('antlr-runtime', 'org.antlr:antlr4-runtime:4.9.1') // Needed by Access Transformer because parsing a simple text file was too complicated
library('coremods', 'net.minecraftforge:coremods:5.1.0')
library('nashorn', 'org.openjdk.nashorn:nashorn-core:15.3') // Needed by coremods, because the JRE no longer ships JS
library('eventbus', 'net.minecraftforge:eventbus:6.2.0')
library('typetools', 'net.jodah:typetools:0.6.3') // Needed by EventBus because of lambdas
library('mergetool-api', 'net.minecraftforge:mergetool-api:1.0')
library('mixin', 'org.spongepowered:mixin:0.8.5')
library('nulls', 'org.jetbrains:annotations:23.0.0') // Got to have our null annotations!
library('slf4j-api', 'org.slf4j:slf4j-api:1.8.0-beta4')
library('maven-artifact', 'org.apache.maven:maven-artifact:3.8.5')
// Google's InMemory File System. Used by ForgeDev Tests for now, but could be useful for a lot of things.
library('jimfs', 'com.google.jimfs:jimfs:1.3.0')
bundle('jimfs', ['guava', 'failureaccess'])
// ASM it's used for so many of our hacks
version('asm', '9.6')
library('asm', 'org.ow2.asm', 'asm' ).versionRef('asm')
library('asm-tree', 'org.ow2.asm', 'asm-tree' ).versionRef('asm')
library('asm-util', 'org.ow2.asm', 'asm-util' ).versionRef('asm')
library('asm-commons', 'org.ow2.asm', 'asm-commons' ).versionRef('asm')
library('asm-analysis', 'org.ow2.asm', 'asm-analysis').versionRef('asm')
bundle('asm', ['asm', 'asm-tree', 'asm-util', 'asm-commons', 'asm-analysis'])
// Terminal Console Appender.. essentually make pretty colors in the console, but it's been a PITA
library('terminalconsoleappender', 'net.minecrell:terminalconsoleappender:1.2.0')
version('jline', '3.12.1')
library('jline-reader', 'org.jline', 'jline-reader' ).versionRef('jline')
library('jline-terminal', 'org.jline', 'jline-terminal').versionRef('jline')
bundle('terminalconsoleappender', ['terminalconsoleappender', 'jline-reader', 'jline-terminal'])
// The core of our configuration system, it has many flaws, but it works for the most part
version('night-config', '3.6.4')
library('night-config-toml', 'com.electronwill.night-config', 'toml').versionRef('night-config')
library('night-config-core', 'com.electronwill.night-config', 'core').versionRef('night-config')
bundle('night-config', ['night-config-toml', 'night-config-core'])
// Jar in Jar FileSystem
version('jarjar', '0.3.19')
library('jarjar-fs', 'net.minecraftforge', 'JarJarFileSystems').versionRef('jarjar')
library('jarjar-meta', 'net.minecraftforge', 'JarJarMetadata' ).versionRef('jarjar')
library('jarjar-selector', 'net.minecraftforge', 'JarJarSelector' ).versionRef('jarjar')
bundle('jarjar', ['jarjar-fs', 'jarjar-selector', 'jarjar-meta'])
// These are libraries shipped by the MC launcher, try and keep them in sync with the manifest
// but honestly if we don't it just means we ship them as normal libraries by adding them to the installer config in the forge project
library('gson', 'com.google.code.gson:gson:2.10.1')
library('guava', 'com.google.guava:guava:32.1.2-jre')
library('failureaccess', 'com.google.guava:failureaccess:1.0.1')
version('log4j', '2.19.0')
library('log4j-api', 'org.apache.logging.log4j', 'log4j-api' ).versionRef('log4j')
library('log4j-core', 'org.apache.logging.log4j', 'log4j-core').versionRef('log4j')
library('apache-commons', 'org.apache.commons:commons-lang3:3.12.0')
library('mojang-logging', 'com.mojang:logging:1.1.1')
library('jopt-simple', 'net.sf.jopt-simple:jopt-simple:5.0.4')
library('commons-io', 'commons-io:commons-io:2.13.0')
version('lwjgl', '3.3.1')
library('lwjgl', 'org.lwjgl', 'lwjgl' ).versionRef('lwjgl')
library('lwjgl-glfw', 'org.lwjgl', 'lwjgl-glfw' ).versionRef('lwjgl')
library('lwjgl-opengl', 'org.lwjgl', 'lwjgl-opengl').versionRef('lwjgl')
library('lwjgl-stb', 'org.lwjgl', 'lwjgl-stb' ).versionRef('lwjgl')
library('lwjgl-tinyfd', 'org.lwjgl', 'lwjgl-tinyfd').versionRef('lwjgl')
bundle('lwjgl', ['lwjgl', 'lwjgl-glfw', 'lwjgl-opengl', 'lwjgl-stb', 'lwjgl-tinyfd'])
}
}
}
rootProject.name = 'ForgeRoot'
include 'fmlloader'
include 'fmlcore'
include 'mclanguage'
include 'javafmllanguage'
include 'lowcodelanguage'
include 'fmlearlydisplay'
include ':mcp'
include ':forge'
project(":mcp").projectDir = file("projects/mcp")
project(":forge").projectDir = file("projects/forge")
if (!System.env.TEAMCITY_VERSION) {
include ':clean'
project(':clean').projectDir = file('projects/clean')
project(':clean').buildFileName = '../../build_clean.gradle'
}