Commit graph

136 commits

Author SHA1 Message Date
modmuss50
e9d1f005d9
Add server only jar configuration option. (#574)
* 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
2022-01-17 22:11:08 +00:00
modmuss50
d71af0cfd7
Kotlin metadata annotation remapping (#573)
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
2022-01-16 23:48:36 +00:00
modmuss50
d40241d75a
Fix performance regressions in large multi-project builds. (#571)
* 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.
2022-01-14 19:50:45 +00:00
modmuss50
6fd3d5d021 Delete existing sources jar when re-running jar processors. Fixes #560 2022-01-05 09:58:19 +00:00
modmuss50
240a23f52d Improve decompiler options by moving them away from the task.
Done because the split jar changes required registering the decompiler task after evaluation.
As there may be more than one decompile task, the options are set per decompiler and not per task.
This should also make easier to add new decompilers without requiring a plugin.
2022-01-05 09:49:11 +00:00
modmuss50
19143fc5a8 Remove JarProcessor#isInvalid and impl getId correctly. 2022-01-04 21:40:20 +00:00
modmuss50
4158062ce5
Experimental support for split common and clientonly minecraft jars. (#561)
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
2022-01-04 21:19:03 +00:00
shartte
ccfe12eb17
Interface Injection (#496)
* Added interface injection via fabric.mod.json.

* Added interface injection

* Added amending of class signature with injected interface.
2022-01-04 18:15:21 +00:00
modmuss50
03d3950d11 Exclude client only libraries in server run task. 2021-12-30 00:15:18 +00:00
modmuss50
15afb45769 Exclude client only libraries in the IntelliJ server run config. 2021-12-29 23:52:13 +00:00
modmuss50
e985cb85d4 Only quote program arguments if they actually contain spaces 2021-12-29 22:03:06 +00:00
Juuxel
005d180e0c
Fix up-to-date checks for ValidateAccessWidenerTask (#565)
* Apply mitigation's against Log4J2 exploit CVE-2021-44228.

* Only warn when the yarn version does not match the minecraft version.

Should allow yarn versions to be used across mc versions when needed.

* Fix up-to-date checks for ValidateAccessWidenerTask

Co-authored-by: modmuss50 <modmuss50@gmail.com>
2021-12-29 21:59:19 +00:00
modmuss50
2752b61cb7 Cleanup signature fixer code + add basic integration test. Fixes #546 2021-12-29 19:27:24 +00:00
modmuss50
53b839b739 Decompiler API improvements:
* Fix decompiler tasks getting registered in afterEvaluate
* Allow decompilers to add file collections to the forked JVM classpath.
* General code cleanup.
2021-12-29 00:10:58 +00:00
modmuss50
e4244dc895 Remove idea-ext plugin, replace with 1 internal gradle api. Vastly improves import performance. 2021-12-20 16:54:03 +00:00
modmuss50
ab21e0e550
Rewrire Jar and Source remapping tasks. (#504) 2021-12-20 16:29:11 +00:00
modmuss50
5a16440c1e
Support ARM natives, rewrite native handling and misc cleanup. (#554)
* 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.
2021-12-17 15:37:00 +00:00
modmuss50
6d65e120e7 Remove deprecated stuff 2021-12-04 19:00:47 +00:00
modmuss50
b550ca7857
Validate remapped mods also have a remapped access widener. (#549)
* Validate remapped mods also have a remapped access widener.

* Fix checkstyle
2021-12-02 18:59:47 +00:00
modmuss50
4b45783a54 Fix crash on Java 18 due to unpick using an outdated asm version.
Unpick will now get the same version of asm that loom is running with on its classpath.
2021-11-26 23:10:35 +00:00
modmuss50
60c908ea1b Fix duplicate comments about transitive access wideners. Fixes #544
A more sophisticated fix might be nice, but im not sure it will provide a lot of benefit.
2021-11-25 18:53:04 +00:00
modmuss50
7b28d61fab
More improvements/fixes to shared caches maven publications + test improvements. 2021-11-25 14:49:17 +00:00
Juuxel
9ddff5f31a
Fix gradle module metadatas not including api deps in runtimeElements (#540) 2021-11-23 18:35:08 +00:00
modmuss50
babbc55586
Add an option (enabled by default) to map synthetic field and method names from the official mojang mappings. (#538) 2021-11-20 21:46:33 +00:00
modmuss50
9c2b1e8d6d Fix access widener file hashcode calculation breaking caching.
When using transitive access wideners the mc jar would always be re-processed.
2021-11-17 15:30:23 +00:00
modmuss50
dd7882598e Add getBaseMappedJar to make it easier to get the pre-transformed game jar. 2021-11-15 13:42:07 +00:00
modmuss50
35afda4398
Fix namedElements not extending from api (#533)
* 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
2021-11-12 10:46:23 +00:00
modmuss50
2994c2d488 Fix for 1.18-pre1 server bundler.
In the bundler its called 1.18 Pre-release 1 not 1.18-pre1, so we just assume there is only ever going to be 1 version per jar.
2021-11-11 18:28:15 +00:00
modmuss50
e2b4bc8985 Reduce log level of "Using project based jar storage".
This will be used on a lot more projects now as transitive access wideners becomes more widely used.
2021-11-10 17:42:41 +00:00
modmuss50
ba4b9289e2 Ensure that the encoding is set to UTF-8 2021-11-10 14:23:32 +00:00
modmuss50
b2228e3175
Fix unobfuscated names not having params or docs. (#532) 2021-11-09 22:07:43 +00:00
Juuxel
587db4abae
Add localRuntime and modLocalRuntime configurations (#526)
Closes #481.

Co-authored-by: modmuss50 <modmuss50@gmail.com>
2021-10-29 22:26:59 +01:00
modmuss50
e409f13b8c
Add dev config with default jar task on it, to aid with depending on … (#525)
* 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>
2021-10-29 13:29:29 +01:00
shedaniel
5c190cc3ef
Use NIO instead of ZipUtil (#513)
* Use nio for zip utils

* Make tests work

* Please work

* Fix some issues with tests

* Fix more issues with tests

* NIOZipUtils -> ZipUtils

* Resolve Juuxel's reviews

* Use our own FS utils

* Improve error handling, add loom Pair

* Add Unit tests + fixes

Co-authored-by: modmuss50 <modmuss50@gmail.com>
2021-10-26 13:08:17 +01:00
modmuss50
b7142ae468 Ensure path exists when loading transitive access wideners. 2021-10-25 18:13:28 +01:00
modmuss50
13f4b29d12 Alter TransitiveAccessWidenerJarProcessor to use the same logic used in ModCompileRemapper for resolving mod jars. 2021-10-25 16:34:06 +01:00
modmuss50
61b5cfa733
Improve run config argument handling, should work with spaces a bit better. (#524) 2021-10-24 14:11:01 +01:00
modmuss50
7359dc4e98 Enable META-INF fixer when remapping mods. 2021-10-24 13:05:42 +01:00
modmuss50
a10307464e
Add AccessWidenerValidator (#518)
* Add AccessWidenerValidator

* Move to task

* Review feedback
2021-10-23 15:04:22 +01:00
modmuss50
2b9907e0f0 Fix mappings not begin on test runtime classpath. 2021-10-16 22:20:27 +01:00
modmuss50
d8675e056b Don't allow none reproducible dependencies in layered mappings as it breaks the caching guarantee. 2021-10-12 16:11:44 +01:00
modmuss50
6666b95b54 Fix mod* configurations not being on the test compile/runtime configuration. Closes #488 2021-10-12 13:31:12 +01:00
modmuss50
e2439b7f57
Rewrite GenSources including full support for CFR. (#511)
* Rewrite CFR decompiler interface. Support javadoc

* CFR line numbers and fixes.

* Cleanup and fix

* Use WorkerExecutor to fork, massively cleans up the fernflower code, but does remove the fancy multithreaded logging.

* Use IPC to get logging back from the decompilers.

* Cleanup UnpickJarTask, fix leak in IPCServer

* Used published CFR build

* Handle older windows versions that do not support AF_UNIX.

* Fixes and basic unit test

* Improve memory handling of genSources

* Stop decompile worker JVM
2021-10-11 13:47:16 +01:00
NinjaPhenix
e55763aca2
Use conventions in RemapConfiguration to avoid need for afterEvaluate. (#514) 2021-10-04 21:37:48 +01:00
modmuss50
ce0a3308ff Make Run Config run dir relative to the project and not the root project. Move eclipse launch config files out of the root project. Closes #509 2021-09-30 19:59:46 +01:00
modmuss50
782344ac59 Fix crash in JarProcessorManager when the input jar does not have a manifest. 2021-09-29 19:44:26 +01:00
modmuss50
da66abfaef Support 21w39a 2021-09-29 19:33:04 +01:00
modmuss50
f33637aa3c Improve error handling around dep remapping. 2021-09-28 17:22:13 +01:00
modmuss50
80ad300b97 Fix failure when running dependencies task when using layered mappings.
A SelfResolvingDependency has to be a FileCollectionDependency or a ModuleDependency by the looks of it.
2021-09-28 16:34:43 +01:00
modmuss50
676a498e0c
Fix record signatures based on data provided by mappings. (#507)
Reads "extras/record_signatures.json" from mappings jar, just works with yarn.

Mojmap:

```
mappings loom.layered {
   officialMojangMappings()
   signatureFix("net.fabricmc🧶21w38a+build.9:v2")
}
```
2021-09-28 10:38:11 +01:00