MixinGradle is a Gradle plugin which simplifies the build-time complexity of working with the SpongePowered Mixin framework for Java. It currently only supports usage with ForgeGradle.
MixinGradle automates the following tasks:
- Locating (via ForgeGradle) and supplying input SRG files to the Mixin Annotation Processor
- Providing processing options to the Annotation Processor
- Contributing the generated reference map (refmap) to the corresponding sourceSet compile task outputs
- Contributing the generated SRG files to appropriate ForgeGradle
reobftasks
To use MixinGradle you must be using ForgeGradle. To configure the plugin for your build:
- Add a source repository to your
buildScript -> dependenciesblock:
buildscript {
repositories {
<add source repository here>
}
dependencies {
...
classpath 'org.spongepowered:mixingradle:0.5-SNAPSHOT'
}
}- Apply the plugin:
apply plugin: 'org.spongepowered.mixin'- Create your
mixinblock, specify which sourceSets to process and provide refmap resource names for each one, the generated refmap will be added to the compiler task outputs automatically.
mixin {
add sourceSets.main, "main.refmap.json"
add sourceSets.another, "another.refmap.json"
}- Alternatively, you can simply specify the
ext.refMapproperty directly on your sourceSet:
sourceSets {
main {
ext.refMap = "main.refmap.json"
}
another {
ext.refMap = "another.refmap.json"
}
}- You can define other mixin AP options in the
mixinblock, for exampledisableTargetValidatoranddisableTargetExportcan be configured either by setting them as boolean properties:
mixin {
disableTargetExport = true
disableTargetValidator = true
}or simply issuing them as directives:
mixin {
disableTargetExport
disableTargetValidator
}You can also set the default obfuscation environment for generated refmaps, this is the obfuscation environment which will be contributed to the refmap's mappings node:
mixin {
// Specify "notch" or "searge" here
defaultObfuscationEnv notch
}MixinGradle can of course be built using Gradle. To perform a build simply execute:
gradle
To add the compiled jar to your local maven repository, run:
gradle build install
