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") pathFatJar = os.path.join(DirBuild, "%s-fat.jar" % ArtifactStandalone.getName()) ssjb.jar.makeJar(pathFatJar, dirTemp, manifest=manifest) # proguard the jar (without obfuscating) to remove some bloat # the guava library is particularly bad... pathDietJar = os.path.join(DirBuild, "%s.jar" % ArtifactStandalone.getName()) ssjb.callJavaJar(os.path.join(DirLib, "proguard.jar"), [ "@proguard-build.conf", "-injars", pathFatJar, "-outjars", pathDietJar ]) ssjb.ivy.deployJarToLocalMavenRepo(PathLocalMavenRepo, pathDietJar, ArtifactStandalone)
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" ) pathFatJar = os.path.join(DirBuild, "%s-fat.jar" % ArtifactStandalone.getName()) ssjb.jar.makeJar(pathFatJar, dirTemp, manifest=manifest) # proguard the jar (without obfuscating) to remove some bloat # the guava library is particularly bad... pathDietJar = os.path.join(DirBuild, "%s.jar" % ArtifactStandalone.getName()) ssjb.callJavaJar( os.path.join(DirLib, "proguard.jar"), ["@proguard-build.conf", "-injars", pathFatJar, "-outjars", pathDietJar] ) ssjb.ivy.deployJarToLocalMavenRepo(PathLocalMavenRepo, pathDietJar, ArtifactStandalone)
def buildTestJar(name, glob): ssjb.file.mkdir(os.path.join(DirBuild, "test-inputs")) ssjb.file.mkdir(os.path.join(DirBuild, "test-obf")) pathJar = os.path.join(DirBuild, "test-inputs/%s.jar" % name) pathObfJar = os.path.join(DirBuild, "test-obf/%s.jar" % name) # build the unobf jar 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) # build the obf jar ssjb.callJavaJar( os.path.join(DirLib, "proguard.jar"), ["@proguard-test.conf", "-injars", pathJar, "-outjars", pathObfJar] )
def buildTestJar(name, glob): ssjb.file.mkdir(os.path.join(DirBuild, "test-inputs")) ssjb.file.mkdir(os.path.join(DirBuild, "test-obf")) pathJar = os.path.join(DirBuild, "test-inputs/%s.jar" % name) pathObfJar = os.path.join(DirBuild, "test-obf/%s.jar" % name) # build the unobf jar 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) # build the obf jar ssjb.callJavaJar( os.path.join(DirLib, "proguard.jar"), ["@proguard-test.conf", "-injars", pathJar, "-outjars", pathObfJar])