vulkan: provide vk.xml as argument to the python generator

Do not hardcode the file in the python script, but pass it via the build
system(s). The latter is the only one that should know about the file
location/tree structure.

Cc: Dylan Baker <dylan@pnwbakers.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
This commit is contained in:
Emil Velikov 2017-02-28 18:53:04 +00:00 committed by Emil Velikov
parent 14281c9035
commit ca7d2025a7
3 changed files with 4 additions and 5 deletions

View file

@ -45,7 +45,7 @@ vulkan_api_xml = $(MESA_TOP)/src/vulkan/registry/vk.xml
$(LOCAL_GENERATED_SOURCES): $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py $(vulkan_api_xml)
@echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
@mkdir -p $(dir $@)
$(hide) $(MESA_PYTHON2) $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py --outdir $(intermediates)/util
$(hide) $(MESA_PYTHON2) $(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py --xml $(vulkan_api_xml) --outdir $(intermediates)/util
LOCAL_EXPORT_C_INCLUDE_DIRS := \
$(intermediates)

View file

@ -16,7 +16,7 @@ BUILT_SOURCES = \
util/vk_enum_to_str.c util/vk_enum_to_str.h: util/gen_enum_to_str.py $(vulkan_api_xml)
$(MKDIR_GEN)
$(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py --outdir $(top_builddir)/src/vulkan/util
$(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py --xml $(vulkan_api_xml) --outdir $(top_builddir)/src/vulkan/util
libvulkan_util_la_SOURCES = $(VULKAN_UTIL_GENERATED_FILES)

View file

@ -29,8 +29,6 @@ import xml.etree.cElementTree as et
from mako.template import Template
VK_XML = os.path.join(os.path.dirname(__file__), '..', 'registry', 'vk.xml')
COPYRIGHT = textwrap.dedent(u"""\
* Copyright © 2017 Intel Corporation
*
@ -160,13 +158,14 @@ def xml_parser(filename):
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--xml', help='Vulkan API XML file.', required=True)
parser.add_argument('--outdir',
help='Directory to put the generated files in',
required=True)
args = parser.parse_args()
enums = xml_parser(VK_XML)
enums = xml_parser(args.xml)
for template, file_ in [(C_TEMPLATE, os.path.join(args.outdir, 'vk_enum_to_str.c')),
(H_TEMPLATE, os.path.join(args.outdir, 'vk_enum_to_str.h'))]:
with open(file_, 'wb') as f: