diff options
author | 2016-04-27 18:59:40 +1000 | |
---|---|---|
committer | 2016-04-27 18:59:40 +1000 | |
commit | bcd8558b02cb54eab92df98f14bf07221d6d358b (patch) | |
tree | c29211cecf250a791c074dfc3e1fc9a2d9a1a593 /docs/release/scripts/build/complay.py | |
parent | 0d70c1f8cdb9e66fd7bc5bcad128e394a2345607 (diff) |
0.173 Release Fileshbmame173
Diffstat (limited to 'docs/release/scripts/build/complay.py')
-rw-r--r-- | docs/release/scripts/build/complay.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/docs/release/scripts/build/complay.py b/docs/release/scripts/build/complay.py new file mode 100644 index 00000000000..eea6da0c099 --- /dev/null +++ b/docs/release/scripts/build/complay.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +## +## license:BSD-3-Clause +## copyright-holders:Aaron Giles, Andrew Gardner + +from __future__ import with_statement + +import sys +import os +import zlib + +if len(sys.argv) < 4: + print('Usage:') + print(' complay <source.lay> <output.h> <varname>') + print('') + sys.exit(0) + +srcfile = sys.argv[1] +dstfile = sys.argv[2] +varname = sys.argv[3] +type = 'UINT8' + +try: + myfile = open(srcfile, 'rb') +except IOError: + sys.stderr.write("Unable to open source file '%s'\n" % srcfile) + sys.exit(-1) + +byteCount = os.path.getsize(srcfile) +compsize = 0 +compressiontype = 1 + +try: + dst = open(dstfile,'w') + dst.write('const %s %s_data[] =\n{\n\t' % ( type, varname)) + offs = 0 + with open(srcfile, "rb") as src: + while True: + chunk = src.read(byteCount) + if chunk: + compchunk = bytearray(zlib.compress(chunk, 9)) + compsize = len(compchunk) + for b in compchunk: + dst.write('%d' % b) + offs += 1 + if offs != compsize: + dst.write(',') + else: + break + dst.write('\n\t') + + dst.write('\n};\n') + +except IOError: + sys.stderr.write("Unable to open output file '%s'\n" % dstfile) + sys.exit(-1) + +try: + dst.write('extern const internal_layout %s;\n' % ( varname )) + dst.write('const internal_layout %s = { \n\t' % ( varname )) + dst.write('%d,%d,%d,%s_data\n' % ( byteCount, compsize, compressiontype, varname )) + dst.write('\n};\n') + + + dst.close() +except IOError: + sys.stderr.write("Unable to open output file '%s'\n" % dstfile) + sys.exit(-1) + |