diff options
author | Dylan Baker <[email protected]> | 2017-02-17 16:59:42 -0800 |
---|---|---|
committer | Dylan Baker <[email protected]> | 2017-03-22 16:22:00 -0700 |
commit | 383032c70068938575f609fef0d442ba3e4d7c68 (patch) | |
tree | 0d344e9dc184439d5d9ce1f6c58674abd37659a7 /src/intel/vulkan | |
parent | a2a2bad2e263a927ceb22b5b84cf00b15cb504db (diff) |
anv: anv_entrypoints_gen.py: directly write files instead of piping
This changes the output to be written as a file rather than being piped.
This had one critical advantage, it encapsulates the encoding. This
prevents bugs where a symbol (generally unicode like © [copyright]) is
printed and the system being built on doesn't have a unicode locale.
v2: - Update Android.mk
v3: - Don't generate both files at once
- Fix Android.mk
- drop --outdir, since the filename is passed in as an argument
Signed-off-by: Dylan Baker <[email protected]>
Diffstat (limited to 'src/intel/vulkan')
-rw-r--r-- | src/intel/vulkan/anv_entrypoints_gen.py | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index bf6b20951ff..47dc44b55dd 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -86,7 +86,7 @@ TEMPLATE_H = Template(textwrap.dedent("""\ #endif // ${guard} % endif % endfor - """)) + """), output_encoding='utf-8') TEMPLATE_C = Template(textwrap.dedent(u"""\ /* @@ -340,22 +340,23 @@ def gen_code(entrypoints): collisions[level] += 1 mapping[h & HASH_MASK] = num - print TEMPLATE_C.render(entrypoints=entrypoints, - offsets=offsets, - collisions=collisions, - mapping=mapping, - hash_mask=HASH_MASK, - prime_step=PRIME_STEP, - prime_factor=PRIME_FACTOR, - none=NONE, - hash_size=HASH_SIZE, - filename=os.path.basename(__file__)) + return TEMPLATE_C.render(entrypoints=entrypoints, + offsets=offsets, + collisions=collisions, + mapping=mapping, + hash_mask=HASH_MASK, + prime_step=PRIME_STEP, + prime_factor=PRIME_FACTOR, + none=NONE, + hash_size=HASH_SIZE, + filename=os.path.basename(__file__)) def main(): parser = argparse.ArgumentParser() parser.add_argument('target', choices=['header', 'code'], help='Which file to generate.') + parser.add_argument('file', help='Where to write the file.') parser.add_argument('--xml', help='Vulkan API XML file.') args = parser.parse_args() @@ -375,10 +376,12 @@ def main(): # For outputting entrypoints.h we generate a anv_EntryPoint() prototype # per entry point. if args.target == 'header': - print TEMPLATE_H.render(entrypoints=entrypoints, - filename=os.path.basename(__file__)) + with open(args.file, 'wb') as f: + f.write(TEMPLATE_H.render(entrypoints=entrypoints, + filename=os.path.basename(__file__))) else: - gen_code(entrypoints) + with open(args.file, 'wb') as f: + f.write(gen_code(entrypoints)) if __name__ == '__main__': |