mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-23 03:00:37 +02:00
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 <dylanx.c.baker@intel.com>
This commit is contained in:
parent
a2a2bad2e2
commit
383032c700
3 changed files with 22 additions and 18 deletions
|
|
@ -59,7 +59,8 @@ $(intermediates)/vulkan/dummy.c:
|
|||
$(hide) touch $@
|
||||
|
||||
$(intermediates)/vulkan/anv_entrypoints.h:
|
||||
$(VK_ENTRYPOINTS_SCRIPT) header --xml $(MESA_TOP)/src/vulkan/registry/vk.xml > $@
|
||||
$(VK_ENTRYPOINTS_SCRIPT) header $@ --xml $(MESA_TOP)/src/vulkan/registry/vk.xml
|
||||
|
||||
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := \
|
||||
$(intermediates)
|
||||
|
|
@ -179,7 +180,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
|
|||
LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_entrypoints.c
|
||||
|
||||
$(intermediates)/vulkan/anv_entrypoints.c:
|
||||
$(VK_ENTRYPOINTS_SCRIPT) code --xml $(MESA_TOP)/src/vulkan/registry/vk.xml > $@
|
||||
$(VK_ENTRYPOINTS_SCRIPT) code $@ --xml $(MESA_TOP)/src/vulkan/registry/vk.xml
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := libdrm_intel
|
||||
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@
|
|||
vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml
|
||||
|
||||
vulkan/anv_entrypoints.h : vulkan/anv_entrypoints_gen.py $(vulkan_api_xml)
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py header --xml $(vulkan_api_xml) > $@
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py header $@ --xml $(vulkan_api_xml)
|
||||
|
||||
vulkan/anv_entrypoints.c : vulkan/anv_entrypoints_gen.py $(vulkan_api_xml)
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py code --xml $(vulkan_api_xml) > $@
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py code $@ --xml $(vulkan_api_xml)
|
||||
|
||||
BUILT_SOURCES += $(VULKAN_GENERATED_FILES)
|
||||
CLEANFILES += \
|
||||
|
|
|
|||
|
|
@ -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__':
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue