summaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'build.py')
-rw-r--r--build.py96
1 files changed, 44 insertions, 52 deletions
diff --git a/build.py b/build.py
index b9d1121f..2868b750 100644
--- a/build.py
+++ b/build.py
@@ -3,67 +3,61 @@ import os
3import ssjb 3import ssjb
4 4
5# settings 5# settings
6projectName = "enigma" 6GroupId = "cuchaz"
7version = "0.6b" 7ProjectName = "enigma"
8author = "Cuchaz" 8Version = "0.6b"
9Author = "Cuchaz"
9 10
10dirBin = "bin" 11DirBin = "bin"
11dirBuild = "build" 12DirBuild = "build"
12dirTemp = os.path.join(dirBuild, "tmp") 13DirTemp = os.path.join(DirBuild, "tmp")
14PathLocalMavenRepo = "../maven"
13 15
14 16
15def getJarFullName(name=None) : 17def getJarFullName(name=None) :
16 if name is not None: 18 if name is not None:
17 return "%s-%s-%s.jar" % (projectName, name, version) 19 return "%s-%s-%s.jar" % (ProjectName, name, Version)
18 else: 20 else:
19 return "%s-%s.jar" % (projectName, version) 21 return "%s-%s.jar" % (ProjectName, Version)
20 22
21def buildGuiJar(): 23def buildJar():
22 jarName = "gui" 24 os.makedirs(DirTemp)
23 os.makedirs(dirTemp) 25 ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin))
24 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin)) 26 # TODO: teach ssjb where to find ivy jars
25 ssjb.unpackJars(dirTemp, "ivy/bundles", recursive=True) 27 ssjb.unpackJars(DirTemp, "ivy/bundles", recursive=True)
26 ssjb.unpackJars(dirTemp, "ivy/jars", recursive=True) 28 ssjb.unpackJars(DirTemp, "ivy/jars", recursive=True)
27 ssjb.unpackJars(dirTemp, "libs", recursive=True) 29 ssjb.unpackJars(DirTemp, "libs", recursive=True)
28 ssjb.delete(os.path.join(dirTemp, "LICENSE.txt")) 30 ssjb.delete(os.path.join(DirTemp, "LICENSE.txt"))
29 ssjb.copyFile(dirTemp, "license.APL2.txt") 31 ssjb.delete(os.path.join(DirTemp, "META-INF/maven"))
30 ssjb.copyFile(dirTemp, "license.GPL3.txt") 32 ssjb.copyFile(DirTemp, "license.APL2.txt")
31 ssjb.copyFile(dirTemp, "readme.txt") 33 ssjb.copyFile(DirTemp, "license.GPL3.txt")
32 manifest = ssjb.buildManifest(projectName, version, author, "cuchaz.enigma.Main") 34 ssjb.copyFile(DirTemp, "readme.txt")
33 ssjb.jar(os.path.join(dirBuild, getJarFullName()), dirTemp, manifest=manifest) 35 manifest = ssjb.buildManifest(ProjectName, Version, Author, "cuchaz.enigma.Main")
34 ssjb.delete(dirTemp) 36 ssjb.jar(os.path.join(DirBuild, getJarFullName()), DirTemp, manifest=manifest)
35 37 ssjb.delete(DirTemp)
36def buildTranslateJar(): 38 ssjb.deployJarToLocalMavenRepo(
37 jarName = "translate" 39 PathLocalMavenRepo,
38 os.makedirs(dirTemp) 40 getJarFullName(),
39 files = ssjb.findFiles(dirBin, "cuchaz/enigma/mapping/*") 41 "%s:%s:%s" % (GroupId, ProjectName, Version)
40 files += ssjb.findFiles(dirBin, "cuchaz/enigma/bytecode/*") 42 )
41 ssjb.copyFiles(dirTemp, dirBin, files)
42 ssjb.copyFile(dirTemp, "license.GPL3.txt", renameTo="license.txt")
43 ssjb.copyFile(dirTemp, "readme.translate.txt", renameTo="readme.txt")
44 manifest = ssjb.buildManifest("%s-%s" % (projectName, jarName), version, author)
45 ssjb.jar(os.path.join(dirBuild, getJarFullName(jarName)), dirTemp, manifest=manifest)
46 ssjb.delete(dirTemp)
47 43
48def taskMain(): 44def taskMain():
49 ssjb.delete(dirBuild) 45 ssjb.delete(DirBuild)
50 os.makedirs(dirBuild) 46 os.makedirs(DirBuild)
51 buildGuiJar() 47 buildJar()
52 buildTranslateJar()
53
54 48
55def makeTestJar(name, glob): 49def makeTestJar(name, glob):
56 50
57 pathJar = os.path.join(dirBuild, "%s.jar" % name) 51 pathJar = os.path.join(DirBuild, "%s.jar" % name)
58 pathObfJar = os.path.join(dirBuild, "%s.obf.jar" % name) 52 pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name)
59 53
60 # build the deobf jar 54 # build the deobf jar
61 ssjb.delete(dirTemp) 55 ssjb.delete(DirTemp)
62 os.makedirs(dirTemp) 56 os.makedirs(DirTemp)
63 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, "cuchaz/enigma/inputs/Keep.class")) 57 ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, "cuchaz/enigma/inputs/Keep.class"))
64 ssjb.copyFiles(dirTemp, dirBin, ssjb.findFiles(dirBin, glob)) 58 ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, glob))
65 ssjb.jar(pathJar, dirTemp) 59 ssjb.jar(pathJar, DirTemp)
66 ssjb.delete(dirTemp) 60 ssjb.delete(DirTemp)
67 61
68 # build the obf jar 62 # build the obf jar
69 ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar]) 63 ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar])
@@ -74,10 +68,8 @@ def taskBuildTestJars():
74 makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") 68 makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class")
75 makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") 69 makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class")
76 70
71
77ssjb.registerTask("main", taskMain) 72ssjb.registerTask("main", taskMain)
78ssjb.registerTask("buildTestJars", taskBuildTestJars) 73ssjb.registerTask("buildTestJars", taskBuildTestJars)
79 74ssjb.run()
80
81if __name__ == "__main__":
82 ssjb.run()
83 75