Skip to content

Commit 018c6f4

Browse files
committed
Jar compatibility checker task
1 parent 33a88fa commit 018c6f4

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed

src/main/groovy/net/minecraftforge/forgedev/Constants.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ private Constants() { }
4747
static final String INSTALLERTOOLS_MAIN = "net.minecraftforge.installertools.ConsoleTool";
4848
static final int INSTALLERTOOLS_JAVA = 8;
4949

50+
static final String JARCOMPATIBILITYCHECKER_NAME = "jarcompatibilitychecker";
51+
static final String JARCOMPATIBILITYCHECKER_VERSION = "0.1.28";
52+
static final String JARCOMPATIBILITYCHECKER_DL_URL = FORGE_MAVEN + "net/minecraftforge/JarCompatibilityChecker/" + JARCOMPATIBILITYCHECKER_VERSION + "/JarCompatibilityChecker-" + JARCOMPATIBILITYCHECKER_VERSION + "-all.jar";
53+
static final String JARCOMPATIBILITYCHECKER_MAIN = "net.minecraftforge.jarcompatibilitychecker.ConsoleTool";
54+
static final int JARCOMPATIBILITYCHECKER_JAVA = 8;
55+
5056
static final String SRGUTILS_NAME = "srgutils";
5157
static final String SRGUTILS_VERSION = "0.5.14";
5258
static final String SRGUTILS_DL_URL = FORGE_MAVEN + "net/minecraftforge/srgutils/" + SRGUTILS_VERSION + "/srgutils-" + SRGUTILS_VERSION + ".jar";

src/main/groovy/net/minecraftforge/forgedev/Tools.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ private Tools() { }
3232
public static final Tool DIFFPATCH = tool(Constants.DIFFPATCH_NAME, Constants.DIFFPATCH_VERSION, Constants.DIFFPATCH_DL_URL, Constants.DIFFPATCH_JAVA, Constants.DIFFPATCH_MAIN);
3333
public static final Tool BINPATCH = tool(Constants.BINPATCH_NAME, Constants.BINPATCH_VERSION, Constants.BINPATCH_DL_URL, Constants.BINPATCH_JAVA, Constants.BINPATCH_MAIN);
3434
public static final Tool INSTALLERTOOLS = tool(Constants.INSTALLERTOOLS_NAME, Constants.INSTALLERTOOLS_VERSION, Constants.INSTALLERTOOLS_DL_URL, Constants.INSTALLERTOOLS_JAVA, Constants.INSTALLERTOOLS_MAIN);
35+
public static final Tool JARCOMPATIBILITYCHECKER = tool(Constants.JARCOMPATIBILITYCHECKER_NAME, Constants.JARCOMPATIBILITYCHECKER_VERSION, Constants.JARCOMPATIBILITYCHECKER_DL_URL, Constants.JARCOMPATIBILITYCHECKER_JAVA, Constants.JARCOMPATIBILITYCHECKER_MAIN);
3536
public static final Tool FART = tool(Constants.FART_NAME, Constants.FART_VERSION, Constants.FART_DL_URL, Constants.FART_JAVA, Constants.FART_MAIN);
3637
public static final Tool SRG2SRC = tool(Constants.SRG2SRC_NAME, Constants.SRG2SRC_VERSION, Constants.SRG2SRC_DL_URL, Constants.SRG2SRC_JAVA, Constants.SRG2SRC_MAIN);
3738

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package net.minecraftforge.forgedev.tasks.jarcompat
2+
3+
import groovy.transform.CompileStatic;
4+
import net.minecraftforge.forgedev.Tools
5+
import net.minecraftforge.forgedev.tasks.ToolExec
6+
import org.gradle.api.file.ConfigurableFileCollection
7+
import org.gradle.api.file.RegularFileProperty
8+
import org.gradle.api.provider.Property
9+
import org.gradle.api.tasks.Input
10+
import org.gradle.api.tasks.InputFile
11+
import org.gradle.api.tasks.InputFiles
12+
import org.gradle.api.tasks.Optional
13+
import org.gradle.process.ExecResult
14+
15+
import javax.inject.Inject
16+
17+
@CompileStatic
18+
abstract class CheckJarCompatibility extends ToolExec {
19+
abstract @InputFile RegularFileProperty getBaseJar()
20+
abstract @InputFile RegularFileProperty getInputJar()
21+
22+
abstract @InputFiles ConfigurableFileCollection getCommonLibraries()
23+
abstract @InputFiles ConfigurableFileCollection getBaseLibraries()
24+
abstract @InputFiles ConfigurableFileCollection getConcreteLibraries()
25+
26+
abstract @Input @Optional Property<Boolean> getBinary()
27+
abstract @Input @Optional Property<String> getAnnotationCheckMode()
28+
29+
@Inject
30+
CheckJarCompatibility() {
31+
super(Tools.JARCOMPATIBILITYCHECKER)
32+
}
33+
34+
@Override
35+
protected ExecResult exec() {
36+
return super.exec().rethrowFailure().assertNormalExitValue()
37+
}
38+
39+
@Override
40+
protected void addArguments() {
41+
super.addArguments()
42+
43+
this.args(
44+
'--base-jar', baseJar,
45+
'--input-jar', inputJar
46+
)
47+
48+
this.args('--lib', commonLibraries)
49+
this.args('--base-lib', baseLibraries)
50+
this.args('--concrete-lib', concreteLibraries)
51+
52+
this.args(binary.getOrElse(false) ? '--binary' : '--api')
53+
this.args('--annotation-check-mode', annotationCheckMode)
54+
}
55+
}

0 commit comments

Comments
 (0)