Commit Graph

83 Commits

Author SHA1 Message Date
Juuz
f51a9a59de Merge remote-tracking branch 'upstream/dev/1.3' into dev/1.3
# Conflicts:
#	src/main/java/net/fabricmc/loom/build/nesting/IncludedJarFactory.java
2023-07-19 12:56:27 +03:00
modmuss
6413a9312c Create RunConfigSettings with Gradle's object factory (#917)
* Create RunConfigSettings with Gradle's object factory

* Update src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java

Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>

* Update FabricAPI test

* Fix version

* Actually fix test

* Just make the minimal changes for now

---------

Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
2023-07-03 17:45:13 +01:00
Juuz
16e1eda2c6 Merge with Fabric 1.1, stage 7 2023-02-16 20:59:03 +02:00
Juuz
81d1f5d562 Merge with Fabric 1.1, stage 1 2023-02-16 00:53:48 +02:00
modmuss50
63ecb88082 Gradle 8 tests, perf/memory optimisations (#796)
* Add gradle 8 tests
Reuse gradle home between tests
Misc perf and mem optimisations

* Fix build warning.

* Added multi mc version test

* Use server launcher in ServerRunner

Co-authored-by: Luna <62033805+Luna5ama@users.noreply.github.com>
2023-01-16 18:39:26 +00:00
modmuss50
da4b01427f Move access widener jar processor for new processor API. (#787) 2023-01-10 23:19:21 +00:00
Juuz
8d54df26ca Remove LaunchProviderSettings (#103)
* Remove LaunchProviderSettings

Closes #99.

- Added new RunConfigSettings.forgeTemplate API
- Removed LaunchProviderSettings and loom.launches
- Removed most evaluateLater usages, only used for configuring the
  RunConfigSettings since Forge runs aren't resolved yet when they're
  created
- Didn't migrate Forge userdev stuff to runs, most of it still injects
  directly into DLI

* Fix Fabric

* Fix 1.14 - 1.16.5 Forge, add test for ForgeRunTemplate for those versions

* Move ConfigValue out of mcpconfig, clean up

* Add test for config values

* Stop replacing user config values with ours
2022-10-29 14:21:50 +03:00
modmuss50
00a3b7ff4e Move Iface injection to new MinecraftJarProcessor API 2022-10-26 12:51:08 +01:00
modmuss50
06074ae73c Start on improved mappings service 2022-10-26 12:47:36 +01:00
modmuss50
0036d81a3a Fixes to legacy jar processors. 2022-10-06 22:48:09 +01:00
modmuss50
24b727c84c More changes 2022-10-04 20:46:46 +01:00
modmuss50
ab4234330e First look at MinecraftJarProcessor API 2022-10-03 22:00:07 +01:00
Juuz
c0677c5770 Merge remote-tracking branch 'upstream/dev/1.0' into dev/1.0 2022-09-11 19:39:46 +03:00
modmuss50
1b4226aca9 Fix mods being always being applied to the main sourceset and not the target. (#719) 2022-09-11 15:58:28 +01:00
shedaniel
216b4ce785 Merge remote-tracking branch 'FabricMC/dev/0.13' into dev/0.13.0
Signed-off-by: shedaniel <daniel@shedaniel.me>

# Conflicts:
#	src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
2022-08-11 00:59:05 +08:00
Juuz
cf28130f2e Merge with Fabric 0.13, stage 6 2022-08-09 17:41:57 +03:00
Juuz
c5386d8795 Merge with Fabric 0.13, stage 5 2022-08-09 17:37:04 +03:00
Juuz
58f2f9445e Merge with Fabric 0.13, stage 3 2022-08-09 17:26:18 +03:00
Juuz
56995fd210 Merge with Fabric 0.13, stage 2 2022-08-09 17:25:34 +03:00
modmuss50
727c396cd9 Add getMappingsFile and getDecompileTask APIs for use by the MC Dev plugin. (#697) 2022-08-07 09:50:22 +01:00
modmuss50
e561cca19a Split mod dependencies into client/common as required. 2022-08-04 08:56:37 +01:00
modmuss50
53f239fd8e Remove shareCaches option, has not been used for a few versions.
Was basically designed for FabricAPI only, now the same is applied where possible to all projects in a much better fashion.
2022-07-25 18:39:39 +01:00
modmuss50
48fafb9a64 Remove unused properties. 2022-07-03 15:09:45 +01:00
modmuss50
da2992e7d9 Configurable remap configs. (#674)
* First pass at configurable remap configs.

* No benefit to making it lazy: https://github.com/gradle/gradle/blob/v7.4.2/subprojects/plugins/src/main/java/org/gradle/api/plugins/BasePlugin.java#L104 ... fixes some stuff to make it work.
2022-06-25 21:38:43 +01:00
Juuz
c35fa7f8f3 Merge remote-tracking branch 'upstream/dev/0.12' into dev/0.12.0
# Conflicts:
#	.github/workflows/test.yml
#	bootstrap/test-project/build.gradle
#	build.gradle
#	src/main/java/net/fabricmc/loom/LoomGradlePlugin.java
#	src/main/java/net/fabricmc/loom/LoomRepositoryPlugin.java
#	src/main/java/net/fabricmc/loom/api/MixinExtensionAPI.java
#	src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
#	src/main/java/net/fabricmc/loom/configuration/ifaceinject/InterfaceInjectionProcessor.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/configuration/providers/minecraft/MinecraftJarConfiguration.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java
#	src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.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/AbstractRunTask.java
#	src/main/java/net/fabricmc/loom/task/RemapJarTask.java
#	src/main/java/net/fabricmc/loom/task/launch/GenerateDLIConfigTask.java
#	src/main/java/net/fabricmc/loom/task/service/TinyRemapperService.java
#	src/main/java/net/fabricmc/loom/util/Constants.java
#	src/main/java/net/fabricmc/loom/util/ModUtils.java
#	src/main/kotlin/net/fabricmc/loom/kotlin/remapping/KotlinMetadataTinyRemapperExtensionImpl.kt
#	src/test/kotlin/net/fabricmc/loom/test/kotlin/KotlinClassMetadataRemappingAnnotationVisitorTest.kt
#	src/test/resources/projects/kotlin/build.gradle.kts
2022-05-08 18:36:35 +03:00
shedaniel
47c44245be Add quilt mode
Squashed commit of the following:

commit 2f5cd64dd232996e92e8d1f71e6ce5deb747d247
Author: shedaniel <daniel@shedaniel.me>
Date:   Wed Apr 20 16:23:18 2022 +0800

    Make installer json ignore fabric's on quilt mode

    Signed-off-by: shedaniel <daniel@shedaniel.me>

commit 381b346c88f22f30acd9620f57f6ef03e6c50102
Merge: f272145a 1c48b6cb
Author: shedaniel <daniel@shedaniel.me>
Date:   Wed Apr 20 15:43:46 2022 +0800

    Merge remote-tracking branch 'architectury/dev/0.11.0' into feature/0.11.0-quilt

commit f272145a19949c72bf1ebdcec3f7c13ed498eb5a
Author: shedaniel <daniel@shedaniel.me>
Date:   Sat Apr 16 14:22:07 2022 +0800

    Match quilt-loom up to 44030f5d4659c425cb6f1450f46be5a0546964f2

    Signed-off-by: shedaniel <daniel@shedaniel.me>

commit 0e084be5e391e79a75467d1c9a56efd02821247a
Merge: 471d6a06 4a7a2660
Author: shedaniel <daniel@shedaniel.me>
Date:   Sat Apr 16 14:13:40 2022 +0800

    Merge remote-tracking branch 'architectury/dev/0.11.0' into feature/0.11.0-quilt

commit 471d6a065a18839bbd4d724d8f4383de53752e8b
Author: shedaniel <daniel@shedaniel.me>
Date:   Mon Mar 28 18:47:20 2022 +0800

    Add QMJ support

    Signed-off-by: shedaniel <daniel@shedaniel.me>
2022-04-20 16:27:43 +08:00
modmuss50
f632dee2df Mod provided javadoc (#627) 2022-04-19 23:30:28 +01:00
modmuss50
febc999092 Merge branch 'exp/0.12' into dev/0.12 2022-04-16 00:16:59 +01:00
modmuss50
66ef9659a2 Fail hard with an error message when calling the wrong officialMojangMappings method.
Before this would have been a weird silent failure and resulted in bad mappings.
2022-04-16 00:06:56 +01:00
modmuss50
0a8b792564 Add DSL to configure mod class path groups. (#608)
* Add basic mod settings.

* Cleanup and review feedback.

* Add idea output dir support.

* Eclipse and vscode + better tests.
2022-03-14 01:07:53 +00:00
modmuss50
fff4afe405 Initial support for split client/common sourcesets. (#606) 2022-03-04 15:01:45 +00:00
modmuss50
de31f1e083 Intermediate mapping handling improvements. (#593)
* Add API for intermediate mappings. Add hacky option to run with no intermediate mappings.

* Add setter, and some getters that I need :)

* Remove unused inject.

* Don't add asm-all to the libraries.

* Fix unit tests.
2022-02-09 13:49:15 +00:00
Juuz
7222234138 Yeet our custom decompiler API since Fabric's works now 2022-01-25 20:58:37 +02:00
Juuz
8e138cf9e3 Merge remote-tracking branch 'upstream/dev/0.11' into dev/0.11.0
# Conflicts:
#	src/main/java/net/fabricmc/loom/configuration/ifaceinject/InterfaceInjectionProcessor.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
#	src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java
2022-01-25 20:54:05 +02:00
modmuss50
9662a8b3de Support injecting interfaces from the mod source. Add a comment to target classes saying what mod is providing an injected interface. (#581) 2022-01-24 15:21:00 +00:00
Juuz
ceb09847ea Merge remote-tracking branch 'upstream/dev/0.11' into merge-0.11 2022-01-19 23:40:20 +02:00
modmuss50
9a796579e8 Disable runtime only log4j by default. 2022-01-19 21:39:27 +00:00
Juuz
6f4cb4ae61 Merge remote-tracking branch 'upstream/dev/0.11' into merge-0.11
# Conflicts:
#	src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
#	src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
#	src/main/java/net/fabricmc/loom/util/Constants.java
2022-01-19 23:29:23 +02:00
modmuss50
b31ce4e525 Remove log4j from compile classpath starting with Minecraft 22w03a.
This is done to force modders to use SLF4J as Mojang have the ability to remove it at anytime. An option is provided to disable this.
2022-01-19 20:04:10 +00:00
Juuz
91656cfa50 A lot of 0.11 stuff but nowhere near done 2022-01-18 18:55:52 +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
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
shedaniel
874671eb7f Fix merge conflicts, it compiles, but shouldn't work
Signed-off-by: shedaniel <daniel@shedaniel.me>
2022-01-06 16:03:03 +08: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
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
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
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
shedaniel
6a18e007a7 Add architectury decompiler (#59)
* Add architectury decompiler

Signed-off-by: shedaniel <daniel@shedaniel.me>

* Perhaps let's not include javaexec helpers

Signed-off-by: shedaniel <daniel@shedaniel.me>

* Fix checkstyle and resolve reviews

Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-12-04 03:55:47 +08:00
shedaniel
c412c11354 Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/0.10.0
# Conflicts:
#	src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
#	src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java
2021-11-06 17:19:57 +08:00