Mercurial > hg > graal-jvmci-8
comparison mx/mx_graal.py @ 15820:f0127716b881
mx: remove unused packagejar command
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Wed, 21 May 2014 15:29:38 +0200 |
parents | 2460aed6c899 |
children | d1822a8fe26f |
comparison
equal
deleted
inserted
replaced
15819:2460aed6c899 | 15820:f0127716b881 |
---|---|
2091 _installed_jdks = opts.installed_jdks | 2091 _installed_jdks = opts.installed_jdks |
2092 global _vm_prefix | 2092 global _vm_prefix |
2093 _vm_prefix = opts.vm_prefix | 2093 _vm_prefix = opts.vm_prefix |
2094 | 2094 |
2095 mx.distribution('GRAAL').add_update_listener(_installGraalJarInJdks) | 2095 mx.distribution('GRAAL').add_update_listener(_installGraalJarInJdks) |
2096 | |
2097 def packagejar(classpath, outputFile, mainClass=None, annotationProcessor=None, stripDebug=False): | |
2098 prefix = '' if mx.get_os() != 'windows' else '\\??\\' # long file name hack | |
2099 print "creating", outputFile | |
2100 filecount, totalsize = 0, 0 | |
2101 with zipfile.ZipFile(outputFile, 'w', zipfile.ZIP_DEFLATED) as zf: | |
2102 manifest = "Manifest-Version: 1.0\n" | |
2103 if mainClass != None: | |
2104 manifest += "Main-Class: %s\n\n" % (mainClass) | |
2105 zf.writestr("META-INF/MANIFEST.MF", manifest) | |
2106 if annotationProcessor != None: | |
2107 zf.writestr("META-INF/services/javax.annotation.processing.Processor", annotationProcessor) | |
2108 for cp in classpath: | |
2109 print "+", cp | |
2110 if cp.endswith(".jar"): | |
2111 with zipfile.ZipFile(cp, 'r') as jar: | |
2112 for arcname in jar.namelist(): | |
2113 if arcname.endswith('/') or arcname == 'META-INF/MANIFEST.MF' or arcname.endswith('.java') or arcname.lower().startswith("license") or arcname in [".project", ".classpath"]: | |
2114 continue | |
2115 zf.writestr(arcname, jar.read(arcname)) | |
2116 else: | |
2117 for root, _, files in os.walk(cp): | |
2118 for f in files: | |
2119 fullname = os.path.join(root, f) | |
2120 arcname = fullname[len(cp) + 1:].replace('\\', '/') | |
2121 if f.endswith(".class"): | |
2122 zf.write(prefix + fullname, arcname) | |
2123 | |
2124 for zi in zf.infolist(): | |
2125 filecount += 1 | |
2126 totalsize += zi.file_size | |
2127 print "%d files (total size: %.2f kB, jar size: %.2f kB)" % (filecount, totalsize / 1e3, os.path.getsize(outputFile) / 1e3) | |
2128 mx.run([mx.exe_suffix(join(mx.java().jdk, 'bin', 'pack200')), '-r'] + (['-G'] if stripDebug else []) + [outputFile]) | |
2129 print "repacked jar size: %.2f kB" % (os.path.getsize(outputFile) / 1e3) |