From e28d1efd91912a60bdbf30f01011b18018075629 Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 6 Jan 2015 00:44:16 -0500 Subject: got rid of gradle in favor of ivy+ssjb --- build.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 build.py (limited to 'build.py') diff --git a/build.py b/build.py new file mode 100644 index 00000000..69182514 --- /dev/null +++ b/build.py @@ -0,0 +1,57 @@ + +import os +import ssjb + +# settings +projectName = "enigma" +version = "0.6b" +author = "Cuchaz" + +dirBin = "bin" +dirBuild = "build" +dirTemp = os.path.join(dirBuild, "tmp") + + +def getJarFullName(name) : + return "%s-%s-%s.jar" % (projectName, name, version) + +def buildGuiJar(): + jarName = "gui" + os.makedirs(dirTemp) + ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin)) + ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True) + ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True) + ssjb.unpackJars(dirTemp, "libs", recursive=True) + ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) + ssjb.copyFile(dirTemp, "license.APL2.txt") + ssjb.copyFile(dirTemp, "license.GPL3.txt") + ssjb.copyFile(dirTemp, "readme.gui.txt", renameTo="readme.txt") + manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author, "cuchaz.enigma.Main") + ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) + ssjb.delete(dirTemp) + +def buildTranslateJar(): + jarName = "translate" + os.makedirs(dirTemp) + files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*") + files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*") + ssjb.copyFiles(dirTemp, dirBin, files) + ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt") + ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt") + manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author) + ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) + ssjb.delete(dirTemp) + +def taskMain(): + ssjb.delete(dirBuild) + os.makedirs(dirBuild) + buildGuiJar() + buildTranslateJar() + + +ssjb.registerTask("main", taskMain) + + +if __name__ == "__main__": + ssjb.run() + -- cgit v1.2.3 From ba67f6c0231157c0b07b37fe0a09fca381bb37d9 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 17 Jan 2015 16:20:15 -0500 Subject: added command-line interface for scriptable awesome --- build.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index 69182514..62b96d11 100644 --- a/build.py +++ b/build.py @@ -12,8 +12,11 @@ dirBuild = "build" dirTemp = os.path.join(dirBuild, "tmp") -def getJarFullName(name) : - return "%s-%s-%s.jar" % (projectName, name, version) +def getJarFullName(name=None) : + if name is not None: + return "%s-%s-%s.jar" % (projectName, name, version) + else: + return "%s-%s.jar" % (projectName, version) def buildGuiJar(): jarName = "gui" @@ -25,9 +28,9 @@ def buildGuiJar(): ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) ssjb.copyFile(dirTemp, "license.APL2.txt") ssjb.copyFile(dirTemp, "license.GPL3.txt") - ssjb.copyFile(dirTemp, "readme.gui.txt", renameTo="readme.txt") - manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author, "cuchaz.enigma.Main") - ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) + ssjb.copyFile(dirTemp, "readme.txt") + manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main") + ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest) ssjb.delete(dirTemp) def buildTranslateJar(): -- cgit v1.2.3 From 2fbcf8e5c4eec0aa4a4fc59c7cc8abac33b1429c Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 19 Jan 2015 22:22:57 -0500 Subject: solved tricky issue with incorrect translation of fields/methods referenced by a subclass instead of the declaring class --- build.py | 79 +++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 28 deletions(-) (limited to 'build.py') 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) : return "%s-%s.jar" % (projectName, version) def buildGuiJar(): - jarName = "gui" - os.makedirs(dirTemp) - ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin)) - ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True) - ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True) - ssjb.unpackJars(dirTemp, "libs", recursive=True) - ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) - ssjb.copyFile(dirTemp, "license.APL2.txt") - ssjb.copyFile(dirTemp, "license.GPL3.txt") - ssjb.copyFile(dirTemp, "readme.txt") - manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main") - ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest) - ssjb.delete(dirTemp) + jarName = "gui" + os.makedirs(dirTemp) + ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin)) + ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True) + ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True) + ssjb.unpackJars(dirTemp, "libs", recursive=True) + ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) + ssjb.copyFile(dirTemp, "license.APL2.txt") + ssjb.copyFile(dirTemp, "license.GPL3.txt") + ssjb.copyFile(dirTemp, "readme.txt") + manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main") + ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest) + ssjb.delete(dirTemp) def buildTranslateJar(): - jarName = "translate" - os.makedirs(dirTemp) - files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*") - files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*") - ssjb.copyFiles(dirTemp, dirBin, files) - ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt") - ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt") - manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author) - ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) - ssjb.delete(dirTemp) + jarName = "translate" + os.makedirs(dirTemp) + files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*") + files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*") + ssjb.copyFiles(dirTemp, dirBin, files) + ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt") + ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt") + manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author) + ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) + ssjb.delete(dirTemp) def taskMain(): - ssjb.delete(dirBuild) - os.makedirs(dirBuild) - buildGuiJar() - buildTranslateJar() + ssjb.delete(dirBuild) + os.makedirs(dirBuild) + buildGuiJar() + buildTranslateJar() +def makeTestJar(name, glob): + + pathJar = os.path.join(dirBuild, "%s.jar" % name) + pathObfJar = os.path.join(dirBuild, "%s.obf.jar" % name) + + # build the deobf jar + ssjb.delete(dirTemp) + os.makedirs(dirTemp) + ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, "cuchaz/enigma/inputs/Keep.class")) + ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, glob)) + ssjb.jar(pathJar, dirTemp) + ssjb.delete(dirTemp) + + # build the obf jar + ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar]) + +def taskBuildTestJars(): + makeTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class") + makeTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") + makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") + makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") + ssjb.registerTask("main", taskMain) +ssjb.registerTask("buildTestJars", taskBuildTestJars) if __name__ == "__main__": - ssjb.run() + ssjb.run() -- cgit v1.2.3 From adfe7f87ffb77fd8285af56140480c242d324de8 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 21 Jan 2015 00:16:31 -0500 Subject: update build system to make maven artifacts --- build.py | 96 +++++++++++++++++++++++++++++----------------------------------- 1 file changed, 44 insertions(+), 52 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index b9d1121f..2868b750 100644 --- a/build.py +++ b/build.py @@ -3,67 +3,61 @@ import os import ssjb # settings -projectName = "enigma" -version = "0.6b" -author = "Cuchaz" +GroupId = "cuchaz" +ProjectName = "enigma" +Version = "0.6b" +Author = "Cuchaz" -dirBin = "bin" -dirBuild = "build" -dirTemp = os.path.join(dirBuild, "tmp") +DirBin = "bin" +DirBuild = "build" +DirTemp = os.path.join(DirBuild, "tmp") +PathLocalMavenRepo = "../maven" def getJarFullName(name=None) : if name is not None: - return "%s-%s-%s.jar" % (projectName, name, version) + return "%s-%s-%s.jar" % (ProjectName, name, Version) else: - return "%s-%s.jar" % (projectName, version) - -def buildGuiJar(): - jarName = "gui" - os.makedirs(dirTemp) - ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin)) - ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True) - ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True) - ssjb.unpackJars(dirTemp, "libs", recursive=True) - ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) - ssjb.copyFile(dirTemp, "license.APL2.txt") - ssjb.copyFile(dirTemp, "license.GPL3.txt") - ssjb.copyFile(dirTemp, "readme.txt") - manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main") - ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest) - ssjb.delete(dirTemp) - -def buildTranslateJar(): - jarName = "translate" - os.makedirs(dirTemp) - files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*") - files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*") - ssjb.copyFiles(dirTemp, dirBin, files) - ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt") - ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt") - manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author) - ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest) - ssjb.delete(dirTemp) + return "%s-%s.jar" % (ProjectName, Version) + +def buildJar(): + os.makedirs(DirTemp) + ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin)) + # TODO: teach ssjb where to find ivy jars + ssjb.unpackJars(DirTemp, "ivy/bundles", recursive=True) + ssjb.unpackJars(DirTemp, "ivy/jars", recursive=True) + ssjb.unpackJars(DirTemp, "libs", recursive=True) + ssjb.delete(os.path.join(DirTemp, "LICENSE.txt")) + ssjb.delete(os.path.join(DirTemp, "META-INF/maven")) + ssjb.copyFile(DirTemp, "license.APL2.txt") + ssjb.copyFile(DirTemp, "license.GPL3.txt") + ssjb.copyFile(DirTemp, "readme.txt") + manifest = ssjb.buildManifest(ProjectName, Version, Author, "cuchaz.enigma.Main") + ssjb.jar(os.path.join(DirBuild, getJarFullName()), DirTemp, manifest=manifest) + ssjb.delete(DirTemp) + ssjb.deployJarToLocalMavenRepo( + PathLocalMavenRepo, + getJarFullName(), + "%s:%s:%s" % (GroupId, ProjectName, Version) + ) def taskMain(): - ssjb.delete(dirBuild) - os.makedirs(dirBuild) - buildGuiJar() - buildTranslateJar() - + ssjb.delete(DirBuild) + os.makedirs(DirBuild) + buildJar() def makeTestJar(name, glob): - pathJar = os.path.join(dirBuild, "%s.jar" % name) - pathObfJar = os.path.join(dirBuild, "%s.obf.jar" % name) + pathJar = os.path.join(DirBuild, "%s.jar" % name) + pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name) # build the deobf jar - ssjb.delete(dirTemp) - os.makedirs(dirTemp) - ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, "cuchaz/enigma/inputs/Keep.class")) - ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, glob)) - ssjb.jar(pathJar, dirTemp) - ssjb.delete(dirTemp) + ssjb.delete(DirTemp) + os.makedirs(DirTemp) + ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, "cuchaz/enigma/inputs/Keep.class")) + ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, glob)) + ssjb.jar(pathJar, DirTemp) + ssjb.delete(DirTemp) # build the obf jar ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar]) @@ -74,10 +68,8 @@ def taskBuildTestJars(): makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") + ssjb.registerTask("main", taskMain) ssjb.registerTask("buildTestJars", taskBuildTestJars) - - -if __name__ == "__main__": - ssjb.run() +ssjb.run() -- cgit v1.2.3 From bec00b76fb2ea06e35bbf37fca376499527b596e Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 21 Jan 2015 00:32:41 -0500 Subject: fix build script to deploy jar correctly --- build.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index 2868b750..082577a0 100644 --- a/build.py +++ b/build.py @@ -33,11 +33,12 @@ def buildJar(): ssjb.copyFile(DirTemp, "license.GPL3.txt") ssjb.copyFile(DirTemp, "readme.txt") manifest = ssjb.buildManifest(ProjectName, Version, Author, "cuchaz.enigma.Main") - ssjb.jar(os.path.join(DirBuild, getJarFullName()), DirTemp, manifest=manifest) + pathJar = os.path.join(DirBuild, getJarFullName()) + ssjb.jar(pathJar, DirTemp, manifest=manifest) ssjb.delete(DirTemp) ssjb.deployJarToLocalMavenRepo( PathLocalMavenRepo, - getJarFullName(), + pathJar, "%s:%s:%s" % (GroupId, ProjectName, Version) ) -- cgit v1.2.3 From c45dbbe43eaa9ecbfa9d59fc80a19f2aa4adb6d9 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 24 Jan 2015 14:59:02 -0500 Subject: switched to new and improved ssjb ssjb can handle all of the dependencies now --- build.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 8 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index 082577a0..aa7c6f84 100644 --- a/build.py +++ b/build.py @@ -1,18 +1,45 @@ import os -import ssjb +import sys # settings +PathSsjb = "../ssjb" GroupId = "cuchaz" ProjectName = "enigma" Version = "0.6b" Author = "Cuchaz" DirBin = "bin" +DirLib = "lib" DirBuild = "build" DirTemp = os.path.join(DirBuild, "tmp") PathLocalMavenRepo = "../maven" +# import ssjb +sys.path.insert(0, PathSsjb) +import ssjb +import ssjb.ivy + + +# dependencies +ExtraRepos = [ + "http://maven.cuchazinteractive.com" +] +Deps = [ + ssjb.ivy.Dep("com.google.guava:guava:17.0"), + ssjb.ivy.Dep("de.sciss:jsyntaxpane:1.0.0"), + ssjb.ivy.Dep("org.javassist:javassist:3.18.1-GA"), + ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.26-enigma") +] +ProguardDeps = [ + ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1") +] +TestDeps = [ + ssjb.ivy.Dep("junit:junit:4.12"), + ssjb.ivy.Dep("org.hamcrest:hamcrest-all:1.3") +] + +# functions def getJarFullName(name=None) : if name is not None: @@ -53,15 +80,27 @@ def makeTestJar(name, glob): pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name) # build the deobf jar - ssjb.delete(DirTemp) - os.makedirs(DirTemp) - ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, "cuchaz/enigma/inputs/Keep.class")) - ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, glob)) - ssjb.jar(pathJar, DirTemp) - ssjb.delete(DirTemp) + ssjb.file.delete(DirTemp) + ssjb.file.mkdir(DirTemp) + ssjb.file.copyTree(DirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class")) + ssjb.file.copyTree(DirTemp, DirBin, ssjb.file.find(DirBin, glob)) + ssjb.jar.makeJar(pathJar, DirTemp) + ssjb.file.delete(DirTemp) # build the obf jar - ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar]) + ssjb.callJavaJar( + os.path.join(DirLib, "proguard.jar"), + ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar] + ) + + +# tasks + +def taskGetDeps(): + ssjb.file.mkdir(DirLib) + ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), Deps, extraRepos=ExtraRepos) + ssjb.ivy.makeLibsJar(os.path.join(DirLib, "test-deps.jar"), TestDeps) + ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDeps) def taskBuildTestJars(): makeTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class") @@ -70,6 +109,7 @@ def taskBuildTestJars(): makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") +ssjb.registerTask("getDeps", taskGetDeps) ssjb.registerTask("main", taskMain) ssjb.registerTask("buildTestJars", taskBuildTestJars) ssjb.run() -- cgit v1.2.3 From c8b77b7444cd6ebd30f34ec31e32447d12b94b9c Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 24 Jan 2015 15:31:59 -0500 Subject: finish build script --- build.py | 98 +++++++++++++++++++++++++++++----------------------------------- 1 file changed, 45 insertions(+), 53 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index aa7c6f84..1349d1db 100644 --- a/build.py +++ b/build.py @@ -4,9 +4,6 @@ import sys # settings PathSsjb = "../ssjb" -GroupId = "cuchaz" -ProjectName = "enigma" -Version = "0.6b" Author = "Cuchaz" DirBin = "bin" @@ -15,12 +12,15 @@ DirBuild = "build" DirTemp = os.path.join(DirBuild, "tmp") PathLocalMavenRepo = "../maven" + # import ssjb sys.path.insert(0, PathSsjb) import ssjb import ssjb.ivy +ThisArtifact = ssjb.ivy.Dep("cuchaz:enigma:0.6b") + # dependencies ExtraRepos = [ "http://maven.cuchazinteractive.com" @@ -31,9 +31,7 @@ Deps = [ ssjb.ivy.Dep("org.javassist:javassist:3.18.1-GA"), ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.26-enigma") ] -ProguardDeps = [ - ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1") -] +ProguardDep = ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1") TestDeps = [ ssjb.ivy.Dep("junit:junit:4.12"), ssjb.ivy.Dep("org.hamcrest:hamcrest-all:1.3") @@ -41,51 +39,16 @@ TestDeps = [ # functions -def getJarFullName(name=None) : - if name is not None: - return "%s-%s-%s.jar" % (ProjectName, name, Version) - else: - return "%s-%s.jar" % (ProjectName, Version) - -def buildJar(): - os.makedirs(DirTemp) - ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin)) - # TODO: teach ssjb where to find ivy jars - ssjb.unpackJars(DirTemp, "ivy/bundles", recursive=True) - ssjb.unpackJars(DirTemp, "ivy/jars", recursive=True) - ssjb.unpackJars(DirTemp, "libs", recursive=True) - ssjb.delete(os.path.join(DirTemp, "LICENSE.txt")) - ssjb.delete(os.path.join(DirTemp, "META-INF/maven")) - ssjb.copyFile(DirTemp, "license.APL2.txt") - ssjb.copyFile(DirTemp, "license.GPL3.txt") - ssjb.copyFile(DirTemp, "readme.txt") - manifest = ssjb.buildManifest(ProjectName, Version, Author, "cuchaz.enigma.Main") - pathJar = os.path.join(DirBuild, getJarFullName()) - ssjb.jar(pathJar, DirTemp, manifest=manifest) - ssjb.delete(DirTemp) - ssjb.deployJarToLocalMavenRepo( - PathLocalMavenRepo, - pathJar, - "%s:%s:%s" % (GroupId, ProjectName, Version) - ) - -def taskMain(): - ssjb.delete(DirBuild) - os.makedirs(DirBuild) - buildJar() - -def makeTestJar(name, glob): +def buildTestJar(name, glob): pathJar = os.path.join(DirBuild, "%s.jar" % name) pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name) # build the deobf jar - ssjb.file.delete(DirTemp) - ssjb.file.mkdir(DirTemp) - ssjb.file.copyTree(DirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class")) - ssjb.file.copyTree(DirTemp, DirBin, ssjb.file.find(DirBin, glob)) - ssjb.jar.makeJar(pathJar, DirTemp) - ssjb.file.delete(DirTemp) + with ssjb.file.TempDir(DirTemp) as dirTemp: + ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class")) + ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, glob)) + ssjb.jar.makeJar(pathJar, dirTemp) # build the obf jar ssjb.callJavaJar( @@ -100,17 +63,46 @@ def taskGetDeps(): ssjb.file.mkdir(DirLib) ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), Deps, extraRepos=ExtraRepos) ssjb.ivy.makeLibsJar(os.path.join(DirLib, "test-deps.jar"), TestDeps) - ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDeps) + ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDep) def taskBuildTestJars(): - makeTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class") - makeTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") - makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") - makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") - + buildTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class") + buildTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") + buildTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") + buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") + +def taskBuild(): + + # make the build directory + ssjb.file.delete(DirBuild) + ssjb.file.mkdir(DirBuild) + + # make the main jar + with ssjb.file.TempDir(DirTemp) as dirTemp: + ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin)) + ssjb.jar.unpackJar(dirTemp, os.path.join(DirLib, "deps.jar")) + ssjb.file.delete(os.path.join(dirTemp, "LICENSE.txt")) + ssjb.file.delete(os.path.join(dirTemp, "META-INF/maven")) + ssjb.file.copy(dirTemp, "license.APL2.txt") + ssjb.file.copy(dirTemp, "license.GPL3.txt") + ssjb.file.copy(dirTemp, "readme.txt") + manifest = ssjb.jar.buildManifest( + ThisArtifact.artifactId, + ThisArtifact.version, + Author, + "cuchaz.enigma.Main" + ) + pathJar = os.path.join(DirBuild, "%s.jar" % ThisArtifact.getName()) + ssjb.jar.makeJar(pathJar, dirTemp, manifest=manifest) + + ssjb.ivy.deployJarToLocalMavenRepo( + PathLocalMavenRepo, + pathJar, + ThisArtifact + ) ssjb.registerTask("getDeps", taskGetDeps) -ssjb.registerTask("main", taskMain) ssjb.registerTask("buildTestJars", taskBuildTestJars) +ssjb.registerTask("build", taskBuild) ssjb.run() -- cgit v1.2.3 From 1db85d556d36567bd65df59d9877387b892c2961 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 24 Jan 2015 15:51:36 -0500 Subject: don't deploy sources/javadoc of libs --- build.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'build.py') diff --git a/build.py b/build.py index 1349d1db..cc77c431 100644 --- a/build.py +++ b/build.py @@ -80,7 +80,8 @@ def taskBuild(): # make the main jar with ssjb.file.TempDir(DirTemp) as dirTemp: ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin)) - ssjb.jar.unpackJar(dirTemp, os.path.join(DirLib, "deps.jar")) + for path in ssjb.ivy.getJarPaths(Deps, ExtraRepos): + ssjb.jar.unpackJar(dirTemp, path) ssjb.file.delete(os.path.join(dirTemp, "LICENSE.txt")) ssjb.file.delete(os.path.join(dirTemp, "META-INF/maven")) ssjb.file.copy(dirTemp, "license.APL2.txt") -- cgit v1.2.3 From f870848996c5ca1191b62ab2ca4555e8ad5c2e29 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 24 Jan 2015 18:18:24 -0500 Subject: split enigma artifacts into standalone and library jars --- build.py | 72 ++++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 31 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index cc77c431..09718cb2 100644 --- a/build.py +++ b/build.py @@ -9,7 +9,6 @@ Author = "Cuchaz" DirBin = "bin" DirLib = "lib" DirBuild = "build" -DirTemp = os.path.join(DirBuild, "tmp") PathLocalMavenRepo = "../maven" @@ -19,18 +18,21 @@ import ssjb import ssjb.ivy -ThisArtifact = ssjb.ivy.Dep("cuchaz:enigma:0.6b") +ArtifactStandalone = ssjb.ivy.Dep("cuchaz:enigma:0.6b") +ArtifactLib = ssjb.ivy.Dep("cuchaz:enigma-lib:0.6b") # dependencies ExtraRepos = [ "http://maven.cuchazinteractive.com" ] -Deps = [ +LibDeps = [ ssjb.ivy.Dep("com.google.guava:guava:17.0"), - ssjb.ivy.Dep("de.sciss:jsyntaxpane:1.0.0"), ssjb.ivy.Dep("org.javassist:javassist:3.18.1-GA"), ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.26-enigma") ] +StandaloneDeps = LibDeps + [ + ssjb.ivy.Dep("de.sciss:jsyntaxpane:1.0.0") +] ProguardDep = ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1") TestDeps = [ ssjb.ivy.Dep("junit:junit:4.12"), @@ -57,6 +59,39 @@ def buildTestJar(name, glob): ) +def applyReadme(dirTemp): + ssjb.file.copy(dirTemp, "license.APL2.txt") + ssjb.file.copy(dirTemp, "license.GPL3.txt") + ssjb.file.copy(dirTemp, "readme.txt") + + +def buildStandaloneJar(dirOut): + with ssjb.file.TempDir(os.path.join(dirOut, "tmp")) as dirTemp: + ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin)) + for path in ssjb.ivy.getJarPaths(StandaloneDeps, ExtraRepos): + ssjb.jar.unpackJar(dirTemp, path) + ssjb.file.delete(os.path.join(dirTemp, "LICENSE.txt")) + ssjb.file.delete(os.path.join(dirTemp, "META-INF/maven")) + applyReadme(dirTemp) + manifest = ssjb.jar.buildManifest( + ArtifactStandalone.artifactId, + ArtifactStandalone.version, + Author, + "cuchaz.enigma.Main" + ) + pathJar = os.path.join(DirBuild, "%s.jar" % ArtifactStandalone.getName()) + ssjb.jar.makeJar(pathJar, dirTemp, manifest=manifest) + ssjb.ivy.deployJarToLocalMavenRepo(PathLocalMavenRepo, pathJar, ArtifactStandalone) + +def buildLibJar(dirOut): + with ssjb.file.TempDir(os.path.join(dirOut, "tmp")) as dirTemp: + ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin)) + applyReadme(dirTemp) + pathJar = os.path.join(DirBuild, "%s.jar" % ArtifactLib.getName()) + ssjb.jar.makeJar(pathJar, dirTemp) + ssjb.ivy.deployJarToLocalMavenRepo(PathLocalMavenRepo, pathJar, ArtifactLib, deps=LibDeps) + + # tasks def taskGetDeps(): @@ -72,35 +107,10 @@ def taskBuildTestJars(): buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") def taskBuild(): - - # make the build directory ssjb.file.delete(DirBuild) ssjb.file.mkdir(DirBuild) - - # make the main jar - with ssjb.file.TempDir(DirTemp) as dirTemp: - ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin)) - for path in ssjb.ivy.getJarPaths(Deps, ExtraRepos): - ssjb.jar.unpackJar(dirTemp, path) - ssjb.file.delete(os.path.join(dirTemp, "LICENSE.txt")) - ssjb.file.delete(os.path.join(dirTemp, "META-INF/maven")) - ssjb.file.copy(dirTemp, "license.APL2.txt") - ssjb.file.copy(dirTemp, "license.GPL3.txt") - ssjb.file.copy(dirTemp, "readme.txt") - manifest = ssjb.jar.buildManifest( - ThisArtifact.artifactId, - ThisArtifact.version, - Author, - "cuchaz.enigma.Main" - ) - pathJar = os.path.join(DirBuild, "%s.jar" % ThisArtifact.getName()) - ssjb.jar.makeJar(pathJar, dirTemp, manifest=manifest) - - ssjb.ivy.deployJarToLocalMavenRepo( - PathLocalMavenRepo, - pathJar, - ThisArtifact - ) + buildStandaloneJar(DirBuild) + buildLibJar(DirBuild) ssjb.registerTask("getDeps", taskGetDeps) ssjb.registerTask("buildTestJars", taskBuildTestJars) -- cgit v1.2.3 From 448685653e90415ebe10b08e8335462b81c30421 Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 2 Feb 2015 21:26:10 -0500 Subject: fix issue with bridge methods --- build.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'build.py') diff --git a/build.py b/build.py index 09718cb2..8e37d0ff 100644 --- a/build.py +++ b/build.py @@ -28,7 +28,7 @@ ExtraRepos = [ LibDeps = [ ssjb.ivy.Dep("com.google.guava:guava:17.0"), ssjb.ivy.Dep("org.javassist:javassist:3.18.1-GA"), - ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.26-enigma") + ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.28-enigma") ] StandaloneDeps = LibDeps + [ ssjb.ivy.Dep("de.sciss:jsyntaxpane:1.0.0") @@ -47,7 +47,7 @@ def buildTestJar(name, glob): pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name) # build the deobf jar - with ssjb.file.TempDir(DirTemp) as dirTemp: + with ssjb.file.TempDir("tmp") as dirTemp: ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class")) ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, glob)) ssjb.jar.makeJar(pathJar, dirTemp) @@ -96,7 +96,7 @@ def buildLibJar(dirOut): def taskGetDeps(): ssjb.file.mkdir(DirLib) - ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), Deps, extraRepos=ExtraRepos) + ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), StandaloneDeps, extraRepos=ExtraRepos) ssjb.ivy.makeLibsJar(os.path.join(DirLib, "test-deps.jar"), TestDeps) ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDep) -- cgit v1.2.3 From cb22a55b241714a56f78b9c6ee863f0a37bbf005 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 5 Feb 2015 23:53:41 -0500 Subject: start some translation tests --- build.py | 1 + 1 file changed, 1 insertion(+) (limited to 'build.py') diff --git a/build.py b/build.py index 8e37d0ff..47294987 100644 --- a/build.py +++ b/build.py @@ -105,6 +105,7 @@ def taskBuildTestJars(): buildTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") buildTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") + buildTestJar("testTranslation", "cuchaz/enigma/inputs/translation/*.class") def taskBuild(): ssjb.file.delete(DirBuild) -- cgit v1.2.3