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(-) diff --git a/build.py b/build.py index aa7c6f8..1349d1d 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