anv: Generate anv_entrypoints header and code in one command

This produces the header and the code in one command, saving the need to
call the same script twice, which parses the same XML file.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
This commit is contained in:
Dylan Baker 2017-03-03 14:22:44 -08:00
parent 383032c700
commit 8211e3e60d
3 changed files with 17 additions and 18 deletions

View File

@ -179,8 +179,11 @@ 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
$(intermediates)/vulknan/anv_entrypoints.c:
$(VK_ENTRYPOINTS_SCRIPT) \
--xml $(MESA_TOP)/src/vulkan/registry/vk.xml \
--outdir $(intermediates)/vulkan
$(intermediates)/vulkan/anv_entrypoints.h: $(intermediates)/vulkan/anv_entrypoints.c
LOCAL_SHARED_LIBRARIES := libdrm_intel

View File

@ -24,11 +24,10 @@
# out and we'll fail at `make dist'
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)
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)
vulkan/anv_entrypoints.c: vulkan/anv_entrypoints_gen.py $(vulkan_api_xml)
$(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py \
--xml $(vulkan_api_xml) --outdir $(builddir)/vulkan
vulkan/anv_entrypoints.h: vulkan/anv_entrypoints.c
BUILT_SOURCES += $(VULKAN_GENERATED_FILES)
CLEANFILES += \

View File

@ -354,10 +354,9 @@ def gen_code(entrypoints):
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.')
parser.add_argument('--outdir', help='Where to write the files.',
required=True)
parser.add_argument('--xml', help='Vulkan API XML file.', required=True)
args = parser.parse_args()
doc = et.parse(args.xml)
@ -375,13 +374,11 @@ def main():
# For outputting entrypoints.h we generate a anv_EntryPoint() prototype
# per entry point.
if args.target == 'header':
with open(args.file, 'wb') as f:
f.write(TEMPLATE_H.render(entrypoints=entrypoints,
filename=os.path.basename(__file__)))
else:
with open(args.file, 'wb') as f:
f.write(gen_code(entrypoints))
with open(os.path.join(args.outdir, 'anv_entrypoints.h'), 'wb') as f:
f.write(TEMPLATE_H.render(entrypoints=entrypoints,
filename=os.path.basename(__file__)))
with open(os.path.join(args.outdir, 'anv_entrypoints.c'), 'wb') as f:
f.write(gen_code(entrypoints))
if __name__ == '__main__':