diff options
Diffstat (limited to 'build.py')
| -rw-r--r-- | build.py | 79 |
1 files changed, 51 insertions, 28 deletions
| @@ -19,42 +19,65 @@ def getJarFullName(name=None) : | |||
| 19 | return "%s-%s.jar" % (projectName, version) | 19 | return "%s-%s.jar" % (projectName, version) |
| 20 | 20 | ||
| 21 | def buildGuiJar(): | 21 | def 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 | ||
| 36 | def buildTranslateJar(): | 36 | def 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 | ||
| 48 | def taskMain(): | 48 | def 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 | ||
| 55 | def 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 | |||
| 71 | def 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 | |||
| 55 | ssjb.registerTask("main", taskMain) | 77 | ssjb.registerTask("main", taskMain) |
| 78 | ssjb.registerTask("buildTestJars", taskBuildTestJars) | ||
| 56 | 79 | ||
| 57 | 80 | ||
| 58 | if __name__ == "__main__": | 81 | if __name__ == "__main__": |
| 59 | ssjb.run() | 82 | ssjb.run() |
| 60 | 83 | ||