mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-11 19:14:11 +00:00
- Saved chunks retain their natural geometry and generation ownership - Future chunks blend against frozen terrain boundaries - Build revisions capture generation source and dependencies automatically - Native terrain queries use contained transition geometry and final height caches - Historical searches retain recorded pack identities and placement facts - World creation and Studio updates preserve native lifecycle ordering - Hydrology containment and scoped content workers retain generation context - Pregeneration validates saved completion before trusting cached progress
52 lines
2.6 KiB
Groovy
52 lines
2.6 KiB
Groovy
import org.gradle.api.artifacts.ResolvedArtifact
|
|
import org.gradle.api.initialization.IncludedBuild
|
|
import org.gradle.api.tasks.TaskReference
|
|
import org.gradle.api.tasks.TaskProvider
|
|
import org.gradle.jvm.tasks.Jar
|
|
|
|
IncludedBuild coreBuild = gradle.includedBuilds.find { IncludedBuild candidate ->
|
|
candidate.projectDir.canonicalFile == file('../..').canonicalFile
|
|
}
|
|
if (coreBuild == null) {
|
|
throw new GradleException('The modded artifact requires the included Iris core build and its generation build revision.')
|
|
}
|
|
TaskReference buildRevisionVerification = coreBuild.task(':core:verifyGenerationBuildRevision')
|
|
TaskProvider<JavaExec> resolvedRevisionVerification = tasks.register('verifyResolvedGenerationKernelDependencies', JavaExec) {
|
|
group = 'verification'
|
|
description = 'Checks the actual bundled generation library contents against the current build revision.'
|
|
dependsOn(buildRevisionVerification)
|
|
classpath = files('../../buildSrc/build/libs/buildSrc.jar')
|
|
mainClass.set('art.arcane.iris.buildtools.GenerationBuildRevision')
|
|
doFirst {
|
|
List<String> arguments = ['verify-dependencies', file('../../core/build/generated/generation-revision/META-INF/iris/generation-kernels/abi-1.revision').absolutePath]
|
|
for (ResolvedArtifact artifact : configurations.bundle.resolvedConfiguration.resolvedArtifacts) {
|
|
String group = artifact.moduleVersion.id.group
|
|
String name = artifact.moduleVersion.id.name
|
|
if (group == 'art.arcane' && name in ['core', 'spi']) {
|
|
continue
|
|
}
|
|
if ("${group}:${name}".toString() in [
|
|
'org.jetbrains:annotations', 'org.jspecify:jspecify',
|
|
'com.google.errorprone:error_prone_annotations', 'com.google.j2objc:j2objc-annotations',
|
|
'org.checkerframework:checker-qual']) {
|
|
continue
|
|
}
|
|
boolean volmLib = (group == 'com.github.VolmitSoftware' && name == 'VolmLib')
|
|
|| group == 'com.github.VolmitSoftware.VolmLib'
|
|
|| (group == 'art.arcane' && name == 'shared')
|
|
String key = volmLib ? 'volmlib' : "${group}:${name}".toString()
|
|
if (artifact.classifier != null) {
|
|
key += ':' + artifact.classifier
|
|
}
|
|
arguments.add(key)
|
|
arguments.add(artifact.file.absolutePath)
|
|
}
|
|
setArgs(arguments)
|
|
}
|
|
}
|
|
gradle.projectsEvaluated {
|
|
resolvedRevisionVerification.configure { dependsOn(configurations.bundle) }
|
|
}
|
|
tasks.withType(Jar).configureEach { dependsOn(resolvedRevisionVerification) }
|
|
tasks.named('check').configure { dependsOn(resolvedRevisionVerification) }
|