Module: Mesa Branch: master Commit: 6f7ad7ed11d92a302e309c3bc042cc76547cd2f7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f7ad7ed11d92a302e309c3bc042cc76547cd2f7
Author: Eric Anholt <[email protected]> Date: Wed Jun 27 10:46:04 2018 -0700 v3d: Pass the version being generated to the pack generator script. It turns out that most V3D versions change very few packets, so keeping separate copies of the XML per version makes changing the XML a pain as you have to replicate your changes to each one. This is the start of changing it so that one XML can generate headers for multiple versions. --- src/broadcom/Android.genxml.mk | 6 +++++- src/broadcom/Makefile.genxml.am | 2 +- src/broadcom/cle/gen_pack_header.py | 8 ++++---- src/broadcom/cle/meson.build | 26 ++++++++++++-------------- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/broadcom/Android.genxml.mk b/src/broadcom/Android.genxml.mk index fc5494fb67..908569fcc7 100644 --- a/src/broadcom/Android.genxml.mk +++ b/src/broadcom/Android.genxml.mk @@ -42,26 +42,30 @@ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/broadcom/, $(BROADCOM_GE define header-gen @mkdir -p $(dir $@) @echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))" - $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_SCRIPT_FLAGS) $(PRIVATE_XML) > $@ + $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_SCRIPT_FLAGS) $(PRIVATE_XML) $(PRIVATE_VER) > $@ endef $(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v21.xml +$(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: PRIVATE_VER := 21 $(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v21.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) $(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v33.xml +$(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: PRIVATE_VER := 33 $(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v33.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) $(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v41.xml +$(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: PRIVATE_VER := 41 $(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v41.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) $(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v42.xml +$(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: PRIVATE_VER := 42 $(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v42.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) diff --git a/src/broadcom/Makefile.genxml.am b/src/broadcom/Makefile.genxml.am index 6cfabaebcb..7949bf6f70 100644 --- a/src/broadcom/Makefile.genxml.am +++ b/src/broadcom/Makefile.genxml.am @@ -30,7 +30,7 @@ $(BROADCOM_GENXML_GENERATED_FILES): cle/gen_pack_header.py .xml_pack.h: $(MKDIR_GEN) - $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< > $@ || ($(RM) $@; false) + $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< `echo $@ | sed -r 's|.*_v([0-9][0-9])_pack.h|\1|g'` > $@ || ($(RM) $@; false) GEN_ZIPPED = $(srcdir)/../intel/genxml/gen_zipped_file.py cle/v3d_xml.h: $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES) diff --git a/src/broadcom/cle/gen_pack_header.py b/src/broadcom/cle/gen_pack_header.py index 5fde7bb07a..df547fb5ab 100644 --- a/src/broadcom/cle/gen_pack_header.py +++ b/src/broadcom/cle/gen_pack_header.py @@ -392,7 +392,7 @@ class Value(object): self.value = int(attrs["value"]) class Parser(object): - def __init__(self): + def __init__(self, ver): self.parser = xml.parsers.expat.ParserCreate() self.parser.StartElementHandler = self.start_element self.parser.EndElementHandler = self.end_element @@ -403,6 +403,7 @@ class Parser(object): # Set of enum names we've seen. self.enums = set() self.registers = {} + self.ver = ver def gen_prefix(self, name): if name[0] == "_": @@ -415,8 +416,7 @@ class Parser(object): def start_element(self, name, attrs): if name == "vcxml": - self.platform = "V3D {}".format(attrs["gen"]) - self.ver = attrs["gen"].replace('.', '') + self.platform = "V3D {}.{}".format(self.ver[0], self.ver[1]) print(pack_header % {'license': license, 'platform': self.platform, 'guard': self.gen_guard()}) elif name in ("packet", "struct", "register"): default_field = None @@ -579,5 +579,5 @@ if len(sys.argv) < 2: input_file = sys.argv[1] -p = Parser() +p = Parser(sys.argv[2]) p.parse(input_file) diff --git a/src/broadcom/cle/meson.build b/src/broadcom/cle/meson.build index b1ff832252..a45538c986 100644 --- a/src/broadcom/cle/meson.build +++ b/src/broadcom/cle/meson.build @@ -26,30 +26,28 @@ v3d_versions = [ ] v3d_xml_files = [] -foreach v: v3d_versions - v3d_xml_files += 'v3d_packet_v@[email protected]'.format(v) -endforeach - -v3d_xml_h = custom_target( - 'v3d_xml.h', - input : ['../../intel/genxml/gen_zipped_file.py', v3d_xml_files], - output : 'v3d_xml.h', - command : [prog_python2, '@INPUT@'], - capture : true, -) - v3d_xml_pack = [] -foreach f : v3d_xml_files +foreach v : v3d_versions + f = 'v3d_packet_v@[email protected]'.format(v) _name = '@0@_pack.h'.format(f.split('.')[0]) + v3d_xml_files += f v3d_xml_pack += custom_target( _name, input : ['gen_pack_header.py', f], output : _name, - command : [prog_python2, '@INPUT@'], + command : [prog_python2, '@INPUT@', '@0@'.format(v)], capture : true, ) endforeach +v3d_xml_h = custom_target( + 'v3d_xml.h', + input : ['../../intel/genxml/gen_zipped_file.py', v3d_xml_files], + output : 'v3d_xml.h', + command : [prog_python2, '@INPUT@'], + capture : true, +) + libbroadcom_cle = static_library( ['broadcom_cle', v3d_xml_h], 'v3d_decoder.c', _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
