mirror of
https://github.com/GTNewHorizons/ForgeMultipart.git
synced 2026-11-12 00:17:39 +00:00
53 lines
2.3 KiB
Groovy
53 lines
2.3 KiB
Groovy
//version: 1707058017
|
|
|
|
plugins {
|
|
id 'com.gtnewhorizons.gtnhconvention'
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
// Scope modern syntax to these helpers; retained Scala and joint Java stay on Java 8.
|
|
apply plugin: xyz.wagyourtail.jvmdg.gradle.JVMDowngraderPlugin
|
|
|
|
def modernJavaSources = sourceSets.main.scala.matching {
|
|
include 'codechicken/multipart/asm/StackAnalyserLogic.java'
|
|
include 'codechicken/multipart/asm/JavaTraitRegistration.java'
|
|
include 'codechicken/multipart/asm/ClassInfoLookup.java'
|
|
}
|
|
def legacyScala = tasks.named('compileScala') {
|
|
// Zinc does not invalidate joint-compiled Java annotations when Tags.VERSION changes.
|
|
scalaCompileOptions.force = true
|
|
// Scalac reads the Java declaration without asking Java 8 javac to compile its body.
|
|
exclude 'codechicken/multipart/asm/StackAnalyserLogic.java'
|
|
exclude 'codechicken/multipart/asm/JavaTraitRegistration.java'
|
|
exclude 'codechicken/multipart/asm/ClassInfoLookup.java'
|
|
scalaCompileOptions.additionalParameters = ['-sourcepath', file('src/main/scala').absolutePath]
|
|
inputs.files(modernJavaSources).withPropertyName('modernJavaDeclarations').withPathSensitivity(PathSensitivity.RELATIVE)
|
|
}
|
|
|
|
def compileModernJava = tasks.register('compileModernJava', JavaCompile) {
|
|
source(modernJavaSources)
|
|
classpath = sourceSets.main.compileClasspath + files(
|
|
tasks.named('compileJava').flatMap { it.destinationDirectory },
|
|
legacyScala.flatMap { it.destinationDirectory })
|
|
destinationDirectory = layout.buildDirectory.dir('classes/java/modern')
|
|
javaCompiler = javaToolchains.compilerFor { languageVersion = JavaLanguageVersion.of(25) }
|
|
options.release = 21
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
|
|
def downgradeModernJava = tasks.register('downgradeModernJava', xyz.wagyourtail.jvmdg.gradle.task.files.DowngradeFiles) {
|
|
inputCollection = files(compileModernJava.flatMap { it.destinationDirectory })
|
|
classpath = compileModernJava.get().classpath
|
|
downgradeTo = JavaVersion.VERSION_1_8
|
|
multiReleaseOriginal = false
|
|
multiReleaseVersions = [] as Set
|
|
// The bundled plugin otherwise declares outputs only when inputs already exist.
|
|
outputs.dirs(outputMap.values())
|
|
}
|
|
|
|
sourceSets.main.output.classesDirs.from(downgradeModernJava.map { it.outputCollection })
|
|
tasks.named('classes') { dependsOn(downgradeModernJava) }
|