Commit Graph

859 Commits

Author SHA1 Message Date
modmuss50
07ded449ee Update mercury and set source compatibility version to 17 2022-05-26 11:21:53 +01:00
modmuss50
4f079f83aa Add dependency and configuration helpers to ModSettings. 2022-05-26 11:09:25 +01:00
modmuss50
1956c03df2 Handle missing classpath entries when source remapping. 2022-05-21 01:05:10 +01:00
modmuss50
86d74b789a Fix client remap classpath. 2022-05-21 00:53:14 +01:00
modmuss50
79668102c0 Fix crash when syncing idea when server only is enabled. Closes #652 2022-05-20 13:46:43 +01:00
modmuss50
40b3ebc80e Add property to control if a remap jar includes client only entries. 2022-05-20 11:22:05 +01:00
modmuss50
743e009068 Fix default client run config name when using split sourcesets. 2022-05-20 01:01:01 +01:00
modmuss50
e1dc1f0684 Ensure nightly gradle version exists before using it to run tests.
Will stop all tests failing when nightly version is removed.
2022-05-19 20:42:54 +01:00
modmuss50
1b6fa615c4 Preserve extraInt in kotlin metadata remapper
The `extraInt` (`xs`, [1]) parameter of Kotlin's Metadata annotation does not become
part of the KmClass/KmLambda and must be preserved explicitly to not be lost
during remapping.

It does carry important information though, so we must not neglect it.
In particular, bit 7 indicates that the class is used in the scope of an inline
function and is therefore implicitly part of the public API. If this flag is
missing from a class which requires it, then it becomes impossible to use that
inline function because the Kotlin compiler will crash hitting an assertion
while trying to inline the required code [2].

Based on the descriptions in [1], it looks like none of this data should be
affected by our remapping in any way, so it seems safe to simply copy over the
value from the original annotation. And that's what this commit does.

[1]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-metadata/extra-int.html
[2]: https://i.johni0702.de/sOpA8.png

Co-authored-by: Jonas Herzig <jonas@spark-squared.com>
2022-05-19 20:17:54 +01:00
modmuss50
c46100c76e Fix split env overriding custom run config sourcesets. 2022-05-19 01:24:58 +01:00
modmuss50
997f9a8acd Fix generation of invalid classpath groups when idea compiler output dir is not set. 2022-05-18 23:47:17 +01:00
modmuss50
5a8e048950 Delay removal of legacy publication data changes. 2022-05-18 23:00:12 +01:00
modmuss50
23dfe606bb Fix mod settings for sourcesets from other projects. (#642) 2022-05-18 22:56:35 +01:00
modmuss50
b8687c87ce Support 1.19-pre1, natives are now all loaded via the classpath. 2022-05-18 18:27:11 +01:00
Juuxel
bab1aa8216 Expose underlying messages in RemapJarTask and Minecraft setup (#650)
Closes #649. Closes #638.
2022-05-17 21:35:38 +01:00
modmuss50
9f341a9b47 Dont depend on other prepare tasks, only run after. (#637) 2022-05-10 23:22:01 +01:00
modmuss50
138685d141 Reduce log level when transitive access widener fails to find target method in mappings.
See: https://github.com/FabricMC/fabric-loom/issues/644
2022-05-10 19:37:00 +01:00
modmuss50
8c227a2d8c Fix/cleanup AP configuration name. (#643) 2022-05-10 19:31:21 +01:00
modmuss50
5e799e8072 Cancel in progress PR tests when PR is updated with more commits. 2022-05-10 18:26:09 +01:00
modmuss50
8b3bfde825 Add LibraryLocationLogger to help debug loom library version issues. 2022-05-01 13:26:03 +01:00
modmuss50
752c829eb0 Fix ModSettings not using a ConfigurableFileCollection :)
Need to add some tests for this ;)
2022-04-30 21:35:17 +01:00
KosmX
6ecaa609e8 Create MixinMappingsService for every target MC version. (#631)
* Create MixinMappingsService for every target MC version.

* Use mappings identifier to identify MixinMappingsService.
2022-04-21 20:55:37 +01:00
modmuss50
1dfea9ef7e Add a FileCollection to ModSettings 2022-04-21 20:52:11 +01:00
modmuss50
b7cdb718d7 Update to support 22w16a's arm64 macos natives, and tiny remapper. 2022-04-20 18:37:11 +01:00
modmuss50
f632dee2df Mod provided javadoc (#627) 2022-04-19 23:30:28 +01:00
modmuss50
29499fd0bd Workaround: https://github.com/gradle/gradle/issues/14727 2022-04-19 18:14:50 +01:00
modmuss50
5f5dfcb3a7 Add refmap target namespace property. (#628)
* Add refmap target namespace Property.

* Fix build.
2022-04-17 21:15:58 +01:00
modmuss50
0fda2a07bd Improve kotlin plugin version retrieval.
Update FLK in test.
2022-04-17 20:20:50 +01:00
modmuss50
ba2c98f7fd Run the kotlin metadata remapper in its own classloader with the compiler kotlin version. (#626) 2022-04-16 18:39:11 +01:00
modmuss50
febc999092 Merge branch 'exp/0.12' into dev/0.12 2022-04-16 00:16:59 +01:00
modmuss50
463847184e Update mapping namespace manifest entry when remapping mod dependencies. 2022-04-16 00:14:42 +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
Jared
ff6e7a23b9 Ensure the Mojang maven repo is added before maven central. Close #621 (#625) 2022-04-13 23:35:27 +01:00
Jared
ccc70f134d Make run tasks use the correct path in multiproject environments. (#624) 2022-04-13 23:15:18 +01:00
modmuss50
2462e12e16 Update deps 2022-04-13 20:09:47 +01:00
modmuss50
981081c2c9 Add protection around using the Kotlin class metadata remapping on mismatching Kotlin versions.
This is going to need further work to run the kotlin remapper in a forked JVM using the version of Koltin that the project was built against.
2022-03-30 19:26:07 +01:00
modmuss50
007bc97c1b Update decompilers and mercury (JDT). 2022-03-30 18:11:47 +01:00
Cat Core
38675b4994 Fix another broken library pom (#616)
* Update MinecraftLibraryProvider.java

* Update LegacyProjectTest.groovy
2022-03-19 00:43:20 +00:00
modmuss50
0ba3e142ba Update gradle + deps 2022-03-14 01:44:11 +00:00
modmuss50
f59e7b4a3e Handle remapping of KotlinClassMetadata.FileFacade & KotlinClassMetadata.MultiFileClassPart (#603) 2022-03-14 01:21:03 +00: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
474d02f1b3 Update gradle and deps. 2022-02-28 18:41:03 +00:00
modmuss50
d7458756c8 Merge branch 'dev/0.11' into exp/0.12 2022-02-28 18:24:29 +00:00
modmuss50
2a606dcf0b Add unpick support to layered file mappings, add direct url support to FileSpec. (#599)
* Add unpick support to layered file mappings, add direct url support to FileSpec.

* Disable unpick by default, fix unit tests.

* Fixes and improvements.
2022-02-27 12:27:46 +00:00
modmuss50
c406d24856 Update MCE, set the quiet Mixin AP flag. (#604) 2022-02-27 12:27:16 +00:00
modmuss50
56d8bcfcea Create .idea dir if it doesn't exist. 2022-02-11 20:11:14 +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
modmuss50
cbcdf66c6d Merge branch 'dev/0.11' into exp/0.12 2022-02-02 22:35:33 +00:00
modmuss50
94ce38068c Filter out classpath entries that do not exist. 2022-02-01 14:34:32 +00:00