Native noise packaging

- Default artifacts carry the CPU native noise libraries inside the packed payload

- Java 21 modded jars exclude Java 25 native classes
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-22 08:58:32 -04:00
1 parent af90765a92
commit 0b4d860ff4
6 files changed
+38 -14

No files matched your search

+2 -2
View File
@@ -58,6 +58,7 @@ IrisFileOperations irisFileOperations = objects.newInstance(IrisFileOperations)
apply from: file('../../gradle/modded-generation-build-revision.gradle') apply from: file('../../gradle/modded-generation-build-revision.gradle')
apply from: file('../../gradle/volmlib-stamp.gradle') apply from: file('../../gradle/volmlib-stamp.gradle')
apply from: file('../../gradle/java21-runtime-exclusions.gradle')
Properties rootProperties = new Properties() Properties rootProperties = new Properties()
file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) } file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) }
@@ -322,8 +323,7 @@ tasks.named('shadowJar', ShadowJar).configure {
configurations = [project.configurations.named('bundle').get()] configurations = [project.configurations.named('bundle').get()]
mergeServiceFiles() mergeServiceFiles()
if ((int) irisModTarget.java == 21) { if ((int) irisModTarget.java == 21) {
exclude('art/arcane/volmlib/util/noise/NativeBillowLoader*.class') exclude(java21RuntimeExclusions)
exclude('art/arcane/volmlib/util/noise/BillowBatch*.class')
} }
exclude('META-INF/maven/**') exclude('META-INF/maven/**')
exclude('META-INF/proguard/**') exclude('META-INF/proguard/**')
+2 -2
View File
@@ -57,6 +57,7 @@ IrisFileOperations irisFileOperations = objects.newInstance(IrisFileOperations)
apply from: file('../../gradle/modded-generation-build-revision.gradle') apply from: file('../../gradle/modded-generation-build-revision.gradle')
apply from: file('../../gradle/volmlib-stamp.gradle') apply from: file('../../gradle/volmlib-stamp.gradle')
apply from: file('../../gradle/java21-runtime-exclusions.gradle')
Properties rootProperties = new Properties() Properties rootProperties = new Properties()
file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) } file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) }
@@ -309,8 +310,7 @@ tasks.named('shadowJar', ShadowJar).configure {
from(sourceSets.main.output) from(sourceSets.main.output)
mergeServiceFiles() mergeServiceFiles()
if ((int) irisModTarget.java == 21) { if ((int) irisModTarget.java == 21) {
exclude('art/arcane/volmlib/util/noise/NativeBillowLoader*.class') exclude(java21RuntimeExclusions)
exclude('art/arcane/volmlib/util/noise/BillowBatch*.class')
} }
exclude('META-INF/maven/**') exclude('META-INF/maven/**')
exclude('META-INF/proguard/**') exclude('META-INF/proguard/**')
+2 -2
View File
@@ -56,6 +56,7 @@ IrisFileOperations irisFileOperations = objects.newInstance(IrisFileOperations)
apply from: file('../../gradle/modded-generation-build-revision.gradle') apply from: file('../../gradle/modded-generation-build-revision.gradle')
apply from: file('../../gradle/volmlib-stamp.gradle') apply from: file('../../gradle/volmlib-stamp.gradle')
apply from: file('../../gradle/java21-runtime-exclusions.gradle')
Properties rootProperties = new Properties() Properties rootProperties = new Properties()
file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) } file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) }
@@ -295,8 +296,7 @@ tasks.named('shadowJar', ShadowJar).configure {
from(sourceSets.main.output) from(sourceSets.main.output)
mergeServiceFiles() mergeServiceFiles()
if ((int) irisModTarget.java == 21) { if ((int) irisModTarget.java == 21) {
exclude('art/arcane/volmlib/util/noise/NativeBillowLoader*.class') exclude(java21RuntimeExclusions)
exclude('art/arcane/volmlib/util/noise/BillowBatch*.class')
} }
exclude('META-INF/maven/**') exclude('META-INF/maven/**')
exclude('META-INF/proguard/**') exclude('META-INF/proguard/**')
+3 -1
View File
@@ -230,6 +230,7 @@ List<Object> moddedSharedInputs = []
'gradle/libs.versions.toml', 'gradle/libs.versions.toml',
'gradle/volmlib-resolution.settings.gradle', 'gradle/volmlib-resolution.settings.gradle',
'gradle/volmlib-stamp.gradle', 'gradle/volmlib-stamp.gradle',
'gradle/java21-runtime-exclusions.gradle',
'gradle/generation-build-revision.gradle', 'gradle/generation-build-revision.gradle',
'gradle/modded-generation-build-revision.gradle', 'gradle/modded-generation-build-revision.gradle',
'gradle/native-minecraft-sources.gradle', 'gradle/native-minecraft-sources.gradle',
@@ -245,7 +246,8 @@ List<Object> moddedSharedInputs = []
].each { String path -> moddedSharedInputs.add(layout.projectDirectory.file(path).asFile) } ].each { String path -> moddedSharedInputs.add(layout.projectDirectory.file(path).asFile) }
if (localVolmLibCheckout != null) { if (localVolmLibCheckout != null) {
moddedSharedInputs.add(fileTree(localVolmLibCheckout) { moddedSharedInputs.add(fileTree(localVolmLibCheckout) {
include('shared/src/main/**', 'native-api/src/main/**', 'native-terrain-api/src/main/**', include('shared/src/main/**', 'shared/src/nativeNoise/**', 'shared/native/noise/prebuilt/**',
'native-api/src/main/**', 'native-terrain-api/src/main/**',
'native/**/src/main/**', 'native/**/src/main/**',
'native/minecraft-common/src/**', 'packaging/src/main/**', 'native/minecraft-common/src/**', 'packaging/src/main/**',
'**/build.gradle', 'settings.gradle', 'gradle.properties', 'gradle/libs.versions.toml') '**/build.gradle', 'settings.gradle', 'gradle.properties', 'gradle/libs.versions.toml')
+2 -7
View File
@@ -39,6 +39,7 @@ plugins {
} }
apply from: rootProject.file('gradle/runtime-relocations.gradle') apply from: rootProject.file('gradle/runtime-relocations.gradle')
apply from: rootProject.file('gradle/java21-runtime-exclusions.gradle')
def lib = 'art.arcane.iris.util' def lib = 'art.arcane.iris.util'
@@ -475,13 +476,7 @@ tasks.named('shadowJar', ShadowJar).configure {
dependsOn(embeddedAgentJar) dependsOn(embeddedAgentJar)
mergeServiceFiles() mergeServiceFiles()
if (providers.gradleProperty('irisRuntimeJava').getOrElse(rootProject.irisModTarget.java.toString()) == '21') { if (providers.gradleProperty('irisRuntimeJava').getOrElse(rootProject.irisModTarget.java.toString()) == '21') {
exclude('art/arcane/volmlib/util/noise/NativeBillowLoader*.class') exclude(java21RuntimeExclusions)
exclude('art/arcane/volmlib/util/noise/BillowBatch*.class')
exclude('art/arcane/volmlib/util/noise/NativeNoiseLibrary*.class')
exclude('art/arcane/volmlib/util/noise/program/NativeNoise*.class')
exclude('art/arcane/volmlib/util/noise/program/NativeProgramEncoder*.class')
exclude('art/arcane/volmlib/util/noise/program/GpuNoise*.class')
exclude('art/arcane/volmlib/native/**')
} }
// minimize() stays off. Caffeine reaches its 520 generated cache and node classes through // minimize() stays off. Caffeine reaches its 520 generated cache and node classes through
// MethodHandles.Lookup.findClass on a computed name, and the VolmLib command, GUI and hotload // MethodHandles.Lookup.findClass on a computed name, and the VolmLib command, GUI and hotload
+27
View File
@@ -0,0 +1,27 @@
/*
* Iris is a World Generator for Minecraft Servers
* Copyright (c) 2026 Arcane Arts (Volmit Software)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
ext.java21RuntimeExclusions = [
'art/arcane/volmlib/util/noise/NativeBillowLoader*.class',
'art/arcane/volmlib/util/noise/BillowBatch*.class',
'art/arcane/volmlib/util/noise/NativeNoiseLibrary*.class',
'art/arcane/volmlib/util/noise/program/NativeNoise*.class',
'art/arcane/volmlib/util/noise/program/NativeProgramEncoder*.class',
'art/arcane/volmlib/util/noise/program/GpuNoise*.class',
'art/arcane/volmlib/native/**'
]