Path: blob/21.2-virgl/src/compiler/spirv/vtn_generator_ids_h.py
4545 views
COPYRIGHT = """\1/*2* Copyright (C) 2020 Valve Corporation3*4* Permission is hereby granted, free of charge, to any person obtaining a5* copy of this software and associated documentation files (the "Software"),6* to deal in the Software without restriction, including without limitation7* the rights to use, copy, modify, merge, publish, distribute, sublicense,8* and/or sell copies of the Software, and to permit persons to whom the9* Software is furnished to do so, subject to the following conditions:10*11* The above copyright notice and this permission notice (including the next12* paragraph) shall be included in all copies or substantial portions of the13* Software.14*15* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR16* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,17* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL18* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER19* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING20* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS21* IN THE SOFTWARE.22*23*/24"""2526import argparse27import xml.etree.ElementTree as ET28from mako.template import Template2930TEMPLATE = Template("""\31/* DO NOT EDIT - This file is generated automatically by vtn_generator_ids.py script */3233""" + COPYRIGHT + """\34<%35def get_name(generator):36name = generator.get('tool').lower()37name = name.replace('-', '')38name = name.replace(' ', '_')39name = name.replace('/', '_')40return name41%>42enum vtn_generator {43% for generator in root.find("./ids[@type='vendor']").findall('id'):44% if 'tool' in generator.attrib:45vtn_generator_${get_name(generator)} = ${generator.get('value')},46% endif47% endfor48vtn_generator_max = 0xffff,49};50""")5152if __name__ == "__main__":53p = argparse.ArgumentParser()54p.add_argument("xml")55p.add_argument("out")56pargs = p.parse_args()5758tree = ET.parse(pargs.xml)59root = tree.getroot()6061with open(pargs.out, 'w') as f:62f.write(TEMPLATE.render(root=root))636465