This should hopefully vastly improve debugging, and more imporantly not work in a consistant manner, making debugging issues a lot easier.
This commit contains an intergration test that uses a real debugger to check that breakpoints are being fired as expected.
This PR rewrites the Minecraft library processing with a more structured and testable set of "library processors". The old code is a mess of special cases and work arounds for various issues on various platforms.
Previously this was only really used on lesser used platforms/versions so wasnt a major issue if things broke, however current shipping Minecraft versions (1.19.4) use an LWJGL version that does not work well on Java versions new than 19. With this change LWJGL is upgraded when using Java 19 or later.
Upgraded libraries are also now only placed on the runtime classpath, this prevents you from using newer library features in your mod.
* Replace getRemapArchives & getSetupRemappedVariants with a gradle property as they are evaluated too early to be set.
* Use true for all projects.
* Cleanup, you can set properties for each subproject.
* Fix docs.
* Add server only option.
* Fix crash.
* Fix unpick jar task name.
* Revert test memory change
* Dont add client only libraries.
* Fixes
* Move option to the extension
* Perf improvements to multi-project builds.
* Fixes.
* More fixes.
* Layered mappings fixes
* Perf improvements. Undo broken fix.
* Fix remap classpath being empty.
* Another gradle bug? Either way this is fine and works.
* Fix broken test
* Final fixes?
* Fix and cleanup mixin ap mappings.
This lays the ground work for split client and server mod code. With this first phase when enabled loom will generate a clientonly and common minecraft jar. Fabric loader and API will both need changes to support this before it can be used to develop mods.
Phase two of this project will handle splitting mod code into a client and common source set along with spliting any dependencies.
Mostly fixes#539 by sepreating decompile tasks
* Fix decompiler tasks getting registered in afterEvaluate
* Allow decompilers to add file collections to the forked JVM classpath.
* General code cleanup.
* Rewrite natives handling, upgrade LWJGL on ARM machines.
* Remove old natives override hack, should now always be done via gradle.
* Use "idea" everywhere
* Add server specific libraries onto their own classpath. Includes misc code cleanup.
* Start on writing the excluded server libs.
* Gradle deprecation fixes, and misc cleanup
* Add support mod.
* Make native support mod none transitive.
* Update gradle.
* Fix `namedElements` not extending from api
Fix artifact not waiting for remapAllJars with shared caches
* Use apiElements
* Add a better test for this.
* Also add remapped api mods to namedElements
* Add dev config with default jar task on it, to aid with depending on sub projects.
* Rename to `namedElements`
* Update src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* use tiny-remapper 0.5.0
* add property of useLegacyMixinAp and rename mixin to mixinAp
* disable mixin ap if useLegacyMixinAp is false
* fix tests
* remove experimental for mixinAp
* enable mixin remapper
* revert changes on API
* rename MixinAp*** to Mixin***
* move useLegacyMixinAp inside MixinExtension
* cleaner code
* update test
Co-authored-by: modmuss50 <modmuss50@gmail.com>
* Add modCompileOnlyApi, modRuntimeOnly; deprecate modRuntime
* begin
* continue
* Make RemapSourcesJarTask use properties
* finish
* Remove cursed version hack 😉
* Finish for real
* Add missing header
* Clarify a comment
* Fix tests
* Use Gradle's own *Elements and remove -dev jars
* Fix maven test
* Put mappingsFinal onto runtimeClasspath instead of implementation
* Make non-mod dependencies work with the legacy pom magic too
* Be a bit more clever when removing dev artifacts
* Add versions used to compile/build against to jar manifest
* checkstyle
* Move to post remap
* Fix build
* Add mc version and mixin group
* Typo
* Make test run across versions better.