summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jeff2015-01-24 15:31:59 -0500
committerGravatar jeff2015-01-24 15:31:59 -0500
commitc8b77b7444cd6ebd30f34ec31e32447d12b94b9c (patch)
treec1a53bbf48cb1b7d1f9775c9f722a6081d86093f
parentswitched to new and improved ssjb (diff)
downloadenigma-fork-c8b77b7444cd6ebd30f34ec31e32447d12b94b9c.tar.gz
enigma-fork-c8b77b7444cd6ebd30f34ec31e32447d12b94b9c.tar.xz
enigma-fork-c8b77b7444cd6ebd30f34ec31e32447d12b94b9c.zip
finish build script
-rw-r--r--build.py98
1 files 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
4 4
5# settings 5# settings
6PathSsjb = "../ssjb" 6PathSsjb = "../ssjb"
7GroupId = "cuchaz"
8ProjectName = "enigma"
9Version = "0.6b"
10Author = "Cuchaz" 7Author = "Cuchaz"
11 8
12DirBin = "bin" 9DirBin = "bin"
@@ -15,12 +12,15 @@ DirBuild = "build"
15DirTemp = os.path.join(DirBuild, "tmp") 12DirTemp = os.path.join(DirBuild, "tmp")
16PathLocalMavenRepo = "../maven" 13PathLocalMavenRepo = "../maven"
17 14
15
18# import ssjb 16# import ssjb
19sys.path.insert(0, PathSsjb) 17sys.path.insert(0, PathSsjb)
20import ssjb 18import ssjb
21import ssjb.ivy 19import ssjb.ivy
22 20
23 21
22ThisArtifact = ssjb.ivy.Dep("cuchaz:enigma:0.6b")
23
24# dependencies 24# dependencies
25ExtraRepos = [ 25ExtraRepos = [
26 "http://maven.cuchazinteractive.com" 26 "http://maven.cuchazinteractive.com"
@@ -31,9 +31,7 @@ Deps = [
31 ssjb.ivy.Dep("org.javassist:javassist:3.18.1-GA"), 31 ssjb.ivy.Dep("org.javassist:javassist:3.18.1-GA"),
32 ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.26-enigma") 32 ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.26-enigma")
33] 33]
34ProguardDeps = [ 34ProguardDep = ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1")
35 ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1")
36]
37TestDeps = [ 35TestDeps = [
38 ssjb.ivy.Dep("junit:junit:4.12"), 36 ssjb.ivy.Dep("junit:junit:4.12"),
39 ssjb.ivy.Dep("org.hamcrest:hamcrest-all:1.3") 37 ssjb.ivy.Dep("org.hamcrest:hamcrest-all:1.3")
@@ -41,51 +39,16 @@ TestDeps = [
41 39
42# functions 40# functions
43 41
44def getJarFullName(name=None) : 42def buildTestJar(name, glob):
45 if name is not None:
46 return "%s-%s-%s.jar" % (ProjectName, name, Version)
47 else:
48 return "%s-%s.jar" % (ProjectName, Version)
49
50def buildJar():
51 os.makedirs(DirTemp)
52 ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin))
53 # TODO: teach ssjb where to find ivy jars
54 ssjb.unpackJars(DirTemp, "ivy/bundles", recursive=True)
55 ssjb.unpackJars(DirTemp, "ivy/jars", recursive=True)
56 ssjb.unpackJars(DirTemp, "libs", recursive=True)
57 ssjb.delete(os.path.join(DirTemp, "LICENSE.txt"))
58 ssjb.delete(os.path.join(DirTemp, "META-INF/maven"))
59 ssjb.copyFile(DirTemp, "license.APL2.txt")
60 ssjb.copyFile(DirTemp, "license.GPL3.txt")
61 ssjb.copyFile(DirTemp, "readme.txt")
62 manifest = ssjb.buildManifest(ProjectName, Version, Author, "cuchaz.enigma.Main")
63 pathJar = os.path.join(DirBuild, getJarFullName())
64 ssjb.jar(pathJar, DirTemp, manifest=manifest)
65 ssjb.delete(DirTemp)
66 ssjb.deployJarToLocalMavenRepo(
67 PathLocalMavenRepo,
68 pathJar,
69 "%s:%s:%s" % (GroupId, ProjectName, Version)
70 )
71
72def taskMain():
73 ssjb.delete(DirBuild)
74 os.makedirs(DirBuild)
75 buildJar()
76
77def makeTestJar(name, glob):
78 43
79 pathJar = os.path.join(DirBuild, "%s.jar" % name) 44 pathJar = os.path.join(DirBuild, "%s.jar" % name)
80 pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name) 45 pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name)
81 46
82 # build the deobf jar 47 # build the deobf jar
83 ssjb.file.delete(DirTemp) 48 with ssjb.file.TempDir(DirTemp) as dirTemp:
84 ssjb.file.mkdir(DirTemp) 49 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class"))
85 ssjb.file.copyTree(DirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class")) 50 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, glob))
86 ssjb.file.copyTree(DirTemp, DirBin, ssjb.file.find(DirBin, glob)) 51 ssjb.jar.makeJar(pathJar, dirTemp)
87 ssjb.jar.makeJar(pathJar, DirTemp)
88 ssjb.file.delete(DirTemp)
89 52
90 # build the obf jar 53 # build the obf jar
91 ssjb.callJavaJar( 54 ssjb.callJavaJar(
@@ -100,17 +63,46 @@ def taskGetDeps():
100 ssjb.file.mkdir(DirLib) 63 ssjb.file.mkdir(DirLib)
101 ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), Deps, extraRepos=ExtraRepos) 64 ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), Deps, extraRepos=ExtraRepos)
102 ssjb.ivy.makeLibsJar(os.path.join(DirLib, "test-deps.jar"), TestDeps) 65 ssjb.ivy.makeLibsJar(os.path.join(DirLib, "test-deps.jar"), TestDeps)
103 ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDeps) 66 ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDep)
104 67
105def taskBuildTestJars(): 68def taskBuildTestJars():
106 makeTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class") 69 buildTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class")
107 makeTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") 70 buildTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class")
108 makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") 71 buildTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class")
109 makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") 72 buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class")
110 73
74def taskBuild():
75
76 # make the build directory
77 ssjb.file.delete(DirBuild)
78 ssjb.file.mkdir(DirBuild)
79
80 # make the main jar
81 with ssjb.file.TempDir(DirTemp) as dirTemp:
82 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin))
83 ssjb.jar.unpackJar(dirTemp, os.path.join(DirLib, "deps.jar"))
84 ssjb.file.delete(os.path.join(dirTemp, "LICENSE.txt"))
85 ssjb.file.delete(os.path.join(dirTemp, "META-INF/maven"))
86 ssjb.file.copy(dirTemp, "license.APL2.txt")
87 ssjb.file.copy(dirTemp, "license.GPL3.txt")
88 ssjb.file.copy(dirTemp, "readme.txt")
89 manifest = ssjb.jar.buildManifest(
90 ThisArtifact.artifactId,
91 ThisArtifact.version,
92 Author,
93 "cuchaz.enigma.Main"
94 )
95 pathJar = os.path.join(DirBuild, "%s.jar" % ThisArtifact.getName())
96 ssjb.jar.makeJar(pathJar, dirTemp, manifest=manifest)
97
98 ssjb.ivy.deployJarToLocalMavenRepo(
99 PathLocalMavenRepo,
100 pathJar,
101 ThisArtifact
102 )
111 103
112ssjb.registerTask("getDeps", taskGetDeps) 104ssjb.registerTask("getDeps", taskGetDeps)
113ssjb.registerTask("main", taskMain)
114ssjb.registerTask("buildTestJars", taskBuildTestJars) 105ssjb.registerTask("buildTestJars", taskBuildTestJars)
106ssjb.registerTask("build", taskBuild)
115ssjb.run() 107ssjb.run()
116 108