mirror of
https://github.com/GTNewHorizons/GTNHLib.git
synced 2026-10-25 20:22:29 +00:00
99 lines
3.2 KiB
Kotlin
99 lines
3.2 KiB
Kotlin
|
|
plugins {
|
|
id("com.gtnewhorizons.gtnhconvention")
|
|
id("me.champeau.jmh") version "0.7.3"
|
|
}
|
|
|
|
minecraft {
|
|
//extraRunJvmArguments.add("-Dgtnhlib.dumpClass=true")
|
|
//extraRunJvmArguments.addAll("-Dlegacy.debugClassLoading=true", "-Dlegacy.debugClassLoadingFiner=true", "-Dlegacy.debugClassLoadingSave=true")
|
|
}
|
|
|
|
// Add a Java 17 sourceset for including code optimized for newer Java versions
|
|
val java17ToolchainSpec: JavaToolchainSpec.() -> Unit = {
|
|
// Use a Java 21 compiler with a target of 17
|
|
languageVersion = JavaLanguageVersion.of(21)
|
|
}
|
|
val main17 by sourceSets.creating {
|
|
compileClasspath = files(compileClasspath, configurations.lwjgl3Classpath.get(), sourceSets.main.get().compileClasspath.filter({ f -> !f.toString().contains("jabel-javac") }), sourceSets.main.get().output)
|
|
runtimeClasspath = files(runtimeClasspath, configurations.lwjgl3Classpath.get(), sourceSets.main.get().runtimeClasspath, sourceSets.main.get().output)
|
|
}
|
|
tasks.named<JavaCompile>(main17.compileJavaTaskName).configure {
|
|
javaCompiler = javaToolchains.compilerFor(java17ToolchainSpec)
|
|
options.release = 17
|
|
sourceCompatibility = JavaVersion.VERSION_17.majorVersion
|
|
targetCompatibility = JavaVersion.VERSION_17.majorVersion
|
|
}
|
|
tasks.jar.configure {
|
|
dependsOn(main17.compileJavaTaskName)
|
|
into("META-INF/versions/17") { from(main17.output) }
|
|
}
|
|
tasks.jar {
|
|
manifest {
|
|
attributes["MixinConfigs"] = "mixins.gtnhlib.preinit.json"
|
|
}
|
|
}
|
|
tasks.sourcesJar.configure {
|
|
into("META-INF/versions/17") { from(main17.java.sourceDirectories) }
|
|
}
|
|
|
|
tasks.processResources {
|
|
val projectVersion = project.version.toString()
|
|
inputs.property("version", projectVersion)
|
|
filesMatching("META-INF/rfb-plugin/*") {
|
|
expand("version" to projectVersion)
|
|
}
|
|
// Embed the FalsePatternLib DepLoader bootstrap jar for the static-block bootstrap.
|
|
from(configurations["deploader"]) {
|
|
rename { "fplib_deploader.jar" }
|
|
}
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
events("passed", "skipped", "failed")
|
|
}
|
|
// On macOS ARM64, use an ARM64-compatible JVM for tests
|
|
val isMacOsArm64 = System.getProperty("os.name").lowercase().contains("mac") &&
|
|
System.getProperty("os.arch") == "aarch64"
|
|
javaLauncher = javaToolchains.launcherFor {
|
|
languageVersion = JavaLanguageVersion.of(8)
|
|
if (isMacOsArm64) {
|
|
vendor = JvmVendorSpec.AZUL
|
|
}
|
|
}
|
|
dependsOn(tasks.extractNatives2)
|
|
jvmArgs("-Djava.library.path=${tasks.extractNatives2.get().destinationFolder.asFile.get().path}")
|
|
}
|
|
|
|
tasks.shadowJar {
|
|
into("META-INF/versions/17") {
|
|
from(main17.output)
|
|
}
|
|
exclude("META-INF/versions/9/module-info.class")
|
|
}
|
|
|
|
for (jarTask in listOf(tasks.jar, tasks.shadowJar, tasks.sourcesJar)) {
|
|
jarTask.configure {
|
|
manifest {
|
|
attributes("Multi-Release" to true)
|
|
}
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
named("jmh") {
|
|
compileClasspath += sourceSets["patchedMc"].output
|
|
runtimeClasspath = files(main17.output) + runtimeClasspath + files(sourceSets["patchedMc"].output)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
add("jmhRuntimeOnly", files(sourceSets["patchedMc"].output))
|
|
}
|
|
|
|
tasks.named<me.champeau.jmh.JMHTask>("jmh") {
|
|
dependsOn(main17.compileJavaTaskName)
|
|
}
|