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
+5 -2
View File
@@ -179,8 +179,11 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_entrypoints.c LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_entrypoints.c
$(intermediates)/vulkan/anv_entrypoints.c: $(intermediates)/vulknan/anv_entrypoints.c:
$(VK_ENTRYPOINTS_SCRIPT) code $@ --xml $(MESA_TOP)/src/vulkan/registry/vk.xml $(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 LOCAL_SHARED_LIBRARIES := libdrm_intel
+4 -5
View File
@@ -24,11 +24,10 @@
# out and we'll fail at `make dist' # out and we'll fail at `make dist'
vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml
vulkan/anv_entrypoints.h : vulkan/anv_entrypoints_gen.py $(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 header $@ --xml $(vulkan_api_xml) $(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py \
--xml $(vulkan_api_xml) --outdir $(builddir)/vulkan
vulkan/anv_entrypoints.c : vulkan/anv_entrypoints_gen.py $(vulkan_api_xml) vulkan/anv_entrypoints.h: vulkan/anv_entrypoints.c
$(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py code $@ --xml $(vulkan_api_xml)
BUILT_SOURCES += $(VULKAN_GENERATED_FILES) BUILT_SOURCES += $(VULKAN_GENERATED_FILES)
CLEANFILES += \ CLEANFILES += \
+8 -11
View File
@@ -354,10 +354,9 @@ def gen_code(entrypoints):
def main(): def main():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('target', choices=['header', 'code'], parser.add_argument('--outdir', help='Where to write the files.',
help='Which file to generate.') required=True)
parser.add_argument('file', help='Where to write the file.') parser.add_argument('--xml', help='Vulkan API XML file.', required=True)
parser.add_argument('--xml', help='Vulkan API XML file.')
args = parser.parse_args() args = parser.parse_args()
doc = et.parse(args.xml) doc = et.parse(args.xml)
@@ -375,13 +374,11 @@ def main():
# For outputting entrypoints.h we generate a anv_EntryPoint() prototype # For outputting entrypoints.h we generate a anv_EntryPoint() prototype
# per entry point. # per entry point.
if args.target == 'header': with open(os.path.join(args.outdir, 'anv_entrypoints.h'), 'wb') as f:
with open(args.file, 'wb') as f: f.write(TEMPLATE_H.render(entrypoints=entrypoints,
f.write(TEMPLATE_H.render(entrypoints=entrypoints, filename=os.path.basename(__file__)))
filename=os.path.basename(__file__))) with open(os.path.join(args.outdir, 'anv_entrypoints.c'), 'wb') as f:
else: f.write(gen_code(entrypoints))
with open(args.file, 'wb') as f:
f.write(gen_code(entrypoints))
if __name__ == '__main__': if __name__ == '__main__':