Commit Graph

31 Commits

Author SHA1 Message Date
shedaniel
649bbcaf55 Merge remote-tracking branch 'upstream/exp/1.4' into exp/1.4
# Conflicts:
#	.gitignore
#	build.gradle
#	settings.gradle
#	src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
#	src/main/java/net/fabricmc/loom/configuration/LoomConfigurations.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
#	src/main/java/net/fabricmc/loom/task/service/JarManifestService.java
#	src/main/java/net/fabricmc/loom/task/service/TinyRemapperService.java
#	src/main/java/net/fabricmc/loom/util/Constants.java
2023-09-23 16:11:29 +08:00
Luke Bemish
0dc2d67317 Add extension option to configure known INVOKEDYNAMIC BSMs (#945)
* Set up configuration for known indy bsms

* Make ignoredIndyBsms apply to service remapper

* Add groovy indy instruction to default known BSMs

* Address feedback

---------

Co-authored-by: modmuss <modmuss50@gmail.com>
2023-09-09 13:21:14 +01:00
Juuz
27cfb8c033 Merge 1.2, part 2 2023-04-23 10:35:54 +03:00
modmuss50
c16303b9b2 Rewrite Minecraft Library handling. (#857)
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.
2023-04-17 00:07:52 +01:00
Juuz
978f9dcb0f Clean up SRG mapping trees and TinyRemapperHelper (#118)
- Instead of a TinyMappingsService holding two files (normal + srg),
  each file gets its own tiny mappings service.
- Allow using SRG mappings in MinecraftJarProcessor impls
  via ProcessorContext.
- Reverts most of our extensive changes to TinyRemapperHelper, they're not
  necessary anymore.
- Restores a missing mapping namespace check to
  TinyRemapperHelper.getTinyRemapper.
2023-02-18 20:39:00 +02:00
Juuz
81d1f5d562 Merge with Fabric 1.1, stage 1 2023-02-16 00:53:48 +02:00
modmuss50
47987b2aa3 Cleanup configuration related code by passing ConfigContext 2022-10-26 12:51:08 +01:00
modmuss50
06074ae73c Start on improved mappings service 2022-10-26 12:47:36 +01:00
Juuz
4369492b55 Make missing TR mapping namespace throw an exception instead of printing to stderr 2022-05-17 20:44:05 +03:00
Juuxel
514ba75a1e Replace compile-time package access fixing on Forge with Unprotect (#84)
* Remove package access fixing

Requires Unprotect at runtime.

* Add Unprotect 1.0.0
2022-05-04 19:21:55 +08:00
shedaniel
817bdb9a32 Fix forge mixin remapping
Signed-off-by: shedaniel <daniel@shedaniel.me>
2022-03-04 09:45:59 +08:00
Juuz
2de44b8b5d Fix ad$2_UNBREAK not remapping 2022-01-19 21:08:32 +02:00
Juuz
0f4c4bd087 Merge remote-tracking branch 'upstream/dev/0.11' into dev/0.11.0
# Conflicts:
#	build.gradle
#	src/main/java/net/fabricmc/loom/LoomGradleExtension.java
#	src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
#	src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java
#	src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
#	src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
#	src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
#	src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/intermediary/IntermediaryMappingLayer.java
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/intermediary/IntermediaryMappingsSpec.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionImpl.java
#	src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java
#	src/main/java/net/fabricmc/loom/task/LoomTasks.java
#	src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java
#	src/main/java/net/fabricmc/loom/task/RemapJarTask.java
#	src/main/java/net/fabricmc/loom/task/ValidateAccessWidenerTask.java
#	src/main/java/net/fabricmc/loom/task/launch/GenerateDLIConfigTask.java
#	src/main/java/net/fabricmc/loom/task/service/MappingsService.java
#	src/main/java/net/fabricmc/loom/util/Checksum.java
#	src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java
#	src/test/resources/projects/kotlin/build.gradle.kts
2022-01-18 17:43:44 +02: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
shedaniel
158185d374 Merge branch '0.11.0-interf' into dev/0.11.0
# Conflicts:
#	.github/workflows/test.yml
#	build.gradle
#	src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
#	src/main/java/net/fabricmc/loom/build/JarRemapper.java
#	src/main/java/net/fabricmc/loom/build/MixinRefmapHelper.java
#	src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
#	src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java
#	src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
#	src/main/java/net/fabricmc/loom/configuration/JarManifestConfiguration.java
#	src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
#	src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
#	src/main/java/net/fabricmc/loom/configuration/ide/SetupIntelijRunConfigs.java
#	src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java
#	src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java
#	src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java
#	src/main/java/net/fabricmc/loom/task/LoomTasks.java
#	src/main/java/net/fabricmc/loom/task/RemapJarTask.java
#	src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java
#	src/main/java/net/fabricmc/loom/util/Constants.java
#	src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy
2022-01-06 15:28:38 +08:00
modmuss50
ab21e0e550 Rewrire Jar and Source remapping tasks. (#504) 2021-12-20 16:29:11 +00:00
shedaniel
70d4a1d691 Forgot to commit fix merge conflicts
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-10-27 12:04:17 +08:00
shedaniel
b23636065e Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/0.10.0
# Conflicts:
#	build.gradle
#	src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
#	src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
#	src/main/java/net/fabricmc/loom/task/RemapJarTask.java
#	src/main/java/net/fabricmc/loom/util/FileSystemUtil.java
#	src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java
2021-10-26 21:16:40 +08:00
modmuss50
c380b36739 Update tiny-remapper and enable "inferNameFromSameLvIndex" to fix issues with decompiling some locals. 2021-10-14 17:04:40 +01:00
shedaniel
d71745f318 Fix checkstyles
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-09-29 01:30:52 +08:00
shedaniel
b4fd2e10f5 Fix merge conflicts
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-09-29 01:28:29 +08: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:yarn:21w38a+build.9:v2")
}
```
2021-09-28 10:38:11 +01:00
shedaniel
9033d1e781 Fix #47, Fix #48
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-09-24 02:23:42 +08:00
shedaniel
770597a588 Fix merge conflicts
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-09-19 20:36:22 +08:00
shedaniel
4b698d54bb Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/0.10.0
# Conflicts:
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java
#	src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java
2021-09-19 20:20:37 +08:00
modmuss50
256e61ce3c Rebuild record components from field names, improves decompile (#497) 2021-09-19 08:53:13 +01:00
shedaniel
8216479edf Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/0.10.0
Signed-off-by: shedaniel <daniel@shedaniel.me>

# Conflicts:
#	build.gradle
#	src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java
2021-09-19 02:53:31 +08:00
shedaniel
7f54808315 Fix merge conflicts
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-09-18 14:00:14 +08:00
modmuss50
2ec1dd032f Update tiny remapper, register the new LV pattern as invalid with TR. 2021-09-16 20:35:10 +01:00
modmuss50
9d9be1b842 Migrate fully to mapping-io + Add comments about transitive access widners to generated sources (#495)
* Add comments about transitive access widners to generated sources

* Migrate fully to mapping io

* Use release version of lorenz-tiny

* Review comment
2021-09-16 15:28:06 +01:00
shartte
d48c74161e Access Widener 2.0 with support for Transitive Access Wideners (#484)
* Added global access widener support.

* Adapt loom to changed API of latest AW PR.

* Fix expected access widener to fix the test. Since the access widener is now streamed directly into the writer, the expanded rules (i.e. accessible field makes the owning class also accessible) are no longer found in the remapped file.

* Add basic transitive accesswidener test

* Extracted applying transitive access wideners into their own jar processor since they also need to be applied if there is no AW in the mod itself.

* Misc assortment of fixes

* Set up the processor lazily to allow for adding the intermediary MC jar, which is needed to correctly remap intermediary AWs to named.

* Rework to setup the tiny remapper classpath with the mc jar
Add an extension prop to disable

* Add TransitiveDetectorVisitor

* Minor refactoring.

* Use release-version of access-widener.

Co-authored-by: modmuss50 <modmuss50@gmail.com>
2021-09-14 22:40:47 +01:00