Darkyenus / wemi

Nimble build system, with batteries included and replaceable
Mozilla Public License 2.0
18 stars 2 forks source link

Investigate why some dependency sortings may produce wrong classpath #29

Closed Darkyenus closed 4 years ago

Darkyenus commented 4 years ago

Specifically:

@file:BuildDependencyRepository("jitpack", "https://jitpack.io/")
@file:BuildDependency("com.darkyen:ResourcePacker:2.5")

        packResources set {
        val resources = (WemiRootFolder / "resources")
        expiresWith(resources)
        resourcePack(PackingOperation(resources.toFile(), assets.toFile()))
        assets
    }

may result in a dependency ordering which fails to start, because wrong GLFW libraries are found first (I guess).

[00:48:36 ERROR] UnhandledException: Thread[main,5,main] has crashed with exception: java.lang.NoSuchMethodError: org.lwjgl.system.Library.loadNative(Ljava/lang/Class;Ljava/lang/String;Z)Lorg/lwjgl/system/SharedLibrary;
java.lang.NoSuchMethodError: org.lwjgl.system.Library.loadNative(Ljava/lang/Class;Ljava/lang/String;Z)Lorg/lwjgl/system/SharedLibrary;
        at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:673)
        at sun.misc.Unsafe.ensureClassInitialized(Native Method)
        at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
        at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:156)
        at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1088)
        at java.lang.reflect.Field.getFieldAccessor(Field.java:1069)
        at java.lang.reflect.Field.getInt(Field.java:574)
        at org.lwjgl.system.APIUtil.apiClassTokens(APIUtil.java:348)
        at org.lwjgl.glfw.GLFWErrorCallback$1.<init>(GLFWErrorCallback.java:98)
        at org.lwjgl.glfw.GLFWErrorCallback.createPrint(GLFWErrorCallback.java:97)
        at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.initializeGlfw(Lwjgl3Application.java:78)
        at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:88)
        at ResourcePacker__ResourcePackerKt.resourcePack(ResourcePacker.kt:38)
        at ResourcePacker.resourcePack(ResourcePacker.kt:1)
        at BuildKt$...$2$12.invoke(build.kt:48)
        at BuildKt$...$2$12.invoke(build.kt)
        at wemi.EvalScope.getKeyValue(Evaluation.kt:180)
        at wemi.EvalScope.get(Evaluation.kt:229)
        at wemi.boot.Task.evaluateKey(Task.kt:105)
        at wemi.boot.CLI.evaluateAndPrint(CLI.kt:276)
        at wemi.boot.CLI.evaluateAndPrint$default(CLI.kt:265)
        at wemi.boot.Launch.main(Launch.kt:419)
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-constants/1.12/batik-constants-1.12.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-stb/3.2.3/lwjgl-stb-3.2.3-natives-linux.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-stb/3.2.3/lwjgl-stb-3.2.3-natives-windows.jar",
.wemi/maven-cache/central/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-script/1.12/batik-script-1.12.jar",
.m2/repository/xalan/xalan/2.7.2/xalan-2.7.2.jar",
.wemi/maven-cache/central/com/badlogicgames/gdx/gdx-backend-lwjgl3/1.9.10/gdx-backend-lwjgl3-1.9.10.jar",
.m2/repository/xalan/serializer/2.7.2/serializer-2.7.2.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-stb/3.2.3/lwjgl-stb-3.2.3.jar",
.m2/repository/xml-apis/xml-apis-ext/1.3.04/xml-apis-ext-1.3.04.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-ext/1.12/batik-ext-1.12.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-codec/1.12/batik-codec-1.12.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-linux.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-svggen/1.12/batik-svggen-1.12.jar",
.wemi/maven-cache/central/com/badlogicgames/gdx/gdx-freetype-platform/1.9.10/gdx-freetype-platform-1.9.10-natives-desktop.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl/3.2.3/lwjgl-3.2.3.jar",
.m2/repository/com/badlogicgames/jlayer/jlayer/1.0.1-gdx/jlayer-1.0.1-gdx.jar",
.wemi/maven-cache/central/com/badlogicgames/gdx/gdx-platform/1.9.10/gdx-platform-1.9.10-natives-desktop.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-parser/1.12/batik-parser-1.12.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-i18n/1.12/batik-i18n-1.12.jar",
.wemi/maven-cache/central/com/badlogicgames/gdx/gdx-freetype/1.9.10/gdx-freetype-1.9.10.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1.jar",
.wemi/maven-cache/central/com/esotericsoftware/minlog/1.3.1/minlog-1.3.1.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-linux.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-windows.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-bridge/1.12/batik-bridge-1.12.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-macos.jar",
.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-gvt/1.12/batik-gvt-1.12.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-awt-util/1.12/batik-awt-util-1.12.jar",
.m2/repository/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-svg-dom/1.12/batik-svg-dom-1.12.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-windows.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-macos.jar",
.m2/repository/org/jcraft/jorbis/0.0.17/jorbis-0.0.17.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-macos.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-macos.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-windows.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-css/1.12/batik-css-1.12.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-anim/1.12/batik-anim-1.12.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/xmlgraphics-commons/2.4/xmlgraphics-commons-2.4.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-dom/1.12/batik-dom-1.12.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-windows.jar",
.m2/repository/com/badlogicgames/gdx/gdx/1.9.10/gdx-1.9.10.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-macos.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-windows.jar",
.m2/repository/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-linux.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-transcoder/1.12/batik-transcoder-1.12.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-linux.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-linux.jar",
.wemi/maven-cache/central/org/lwjgl/lwjgl-stb/3.2.3/lwjgl-stb-3.2.3-natives-macos.jar",
.wemi/maven-cache/jitpack/com/darkyen/ResourcePacker/2.5/ResourcePacker-2.5.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-util/1.12/batik-util-1.12.jar",
.wemi/maven-cache/central/org/apache/xmlgraphics/batik-xml/1.12/batik-xml-1.12.jar",