Commit Graph

729 Commits

Author SHA1 Message Date
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
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
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
modmuss50
19b92df9af Merge branch 'dev/0.11' into exp/0.12 2022-01-31 16:35:37 +00:00
modmuss50
582b6826bd Support client only jar, add tests for ancient minecraft versions. (#589)
* Support client only jar, add tests for ancient minecraft versions.

* Misc fixes.
2022-01-31 16:30:12 +00:00
Juuxel
5dda747cee Add file mappings layer (#590)
* Support passing FileSpecs around for the FileSpec notation

* Add file mappings layer

* Add better tests for file mappings

* Remove unnecessary param in setup closure call

* Fix test code style

* Add ZipUtils.isZip

* Automatically detect whether the file is a zip

* Rename LayeredMappingSpecBuilder.fileMappings -> mappings

* Add test for file mappings in layered mappings, fix inconsistent hashCode being

* Resolve reviews
2022-01-31 14:50:19 +00:00
modmuss50
287e6cefb9 Fix crash with Gradle 7.4+ during idea sync. 2022-01-29 18:14:13 +00:00
modmuss50
4b52176499 Cleanup asset downloading, add support for legacy and pre-1.6 assets (#585) 2022-01-28 20:26:16 +00:00
modmuss50
4fe19028cf Add option to isolate the tiny remapper instance between sub-projects. (#588) 2022-01-27 17:08:17 +00:00
modmuss50
03089cf6d7 Setup remapped variants in afterEvaluate to work around issues caused by creating the lazy remap tasks too early. (#586) 2022-01-27 16:01:46 +00:00