summaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'build.py')
-rw-r--r--build.py79
1 files changed, 51 insertions, 28 deletions
diff --git a/build.py b/build.py
index 62b96d11..b9d1121f 100644
--- a/build.py
+++ b/build.py
@@ -19,42 +19,65 @@ def getJarFullName(name=None) :
19 return "%s-%s.jar" % (projectName, version) 19 return "%s-%s.jar" % (projectName, version)
20 20
21def buildGuiJar(): 21def buildGuiJar():
22 jarName = "gui" 22 jarName = "gui"
23 os.makedirs(dirTemp) 23 os.makedirs(dirTemp)
24 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin)) 24 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin))
25 ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True) 25 ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True)
26 ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True) 26 ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True)
27 ssjb.unpackJars(dirTemp, "libs", recursive=True) 27 ssjb.unpackJars(dirTemp, "libs", recursive=True)
28 ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) 28 ssjb.delete(os.path.join(dirTemp, "LICENSE.txt"))
29 ssjb.copyFile(dirTemp, "license.APL2.txt") 29 ssjb.copyFile(dirTemp, "license.APL2.txt")
30 ssjb.copyFile(dirTemp, "license.GPL3.txt") 30 ssjb.copyFile(dirTemp, "license.GPL3.txt")
31 ssjb.copyFile(dirTemp, "readme.txt") 31 ssjb.copyFile(dirTemp, "readme.txt")
32 manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main") 32 manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main")
33 ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest) 33 ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest)
34 ssjb.delete(dirTemp) 34 ssjb.delete(dirTemp)
35 35
36def buildTranslateJar(): 36def buildTranslateJar():
37 jarName = "translate" 37 jarName = "translate"
38 os.makedirs(dirTemp) 38 os.makedirs(dirTemp)
39 files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*") 39 files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*")
40 files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*") 40 files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*")
41 ssjb.copyFiles(dirTemp, dirBin, files) 41 ssjb.copyFiles(dirTemp, dirBin, files)
42 ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt") 42 ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt")
43 ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt") 43 ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt")
44 manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author) 44 manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author)
45 ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) 45 ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest)
46 ssjb.delete(dirTemp) 46 ssjb.delete(dirTemp)
47 47
48def taskMain(): 48def taskMain():
49 ssjb.delete(dirBuild) 49 ssjb.delete(dirBuild)
50 os.makedirs(dirBuild) 50 os.makedirs(dirBuild)
51 buildGuiJar() 51 buildGuiJar()
52 buildTranslateJar() 52 buildTranslateJar()
53 53
54 54
55def makeTestJar(name, glob):
56
57 pathJar = os.path.join(dirBuild, "%s.jar" % name)
58 pathObfJar = os.path.join(dirBuild, "%s.obf.jar" % name)
59
60 # build the deobf jar
61 ssjb.delete(dirTemp)
62 os.makedirs(dirTemp)
63 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, "cuchaz/enigma/inputs/Keep.class"))
64 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, glob))
65 ssjb.jar(pathJar, dirTemp)
66 ssjb.delete(dirTemp)
67
68 # build the obf jar
69 ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar])
70
71def taskBuildTestJars():
72 makeTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class")
73 makeTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class")
74 makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class")
75 makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class")
76
55ssjb.registerTask("main", taskMain) 77ssjb.registerTask("main", taskMain)
78ssjb.registerTask("buildTestJars", taskBuildTestJars)
56 79
57 80
58if __name__ == "__main__": 81if __name__ == "__main__":
59 ssjb.run() 82 ssjb.run()
60 83