mirror of
https://github.com/ZDoom/zdoom-macos-deps.git
synced 2024-12-01 16:11:23 +00:00
42 lines
1.7 KiB
Python
Executable file
42 lines
1.7 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
#
|
|
# Copyright 2023-2024 The Khronos Group Inc.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
import argparse
|
|
import xml.etree.ElementTree as etree
|
|
from reg import stripNonmatchingAPIs
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(prog='stripAPI',
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
description='''\
|
|
Filters out elements with non-matching explicit 'api' attributes from API XML.
|
|
To remove Vulkan SC-only elements from the combined API XML:
|
|
python3 scripts/stripAPI.py -input xml/vk.xml -output vulkan-only.xml -keepAPI vulkan
|
|
To remove Vulkan-only elements:
|
|
python3 scripts/stripAPI.py -input xml/vk.xml -output vulkansc-only.xml -keepAPI vulkansc
|
|
If you are parsing the XML yourself but using the xml.etree package, the
|
|
equivalent runtime code is:
|
|
import reg
|
|
reg.stripNonmatchingAPIs(tree.getroot(), keepAPI, actuallyDelete=True)
|
|
where 'tree' is an ElementTree created from the XML file using
|
|
etree.parse(filename)''')
|
|
|
|
parser.add_argument('-input', action='store',
|
|
required=True,
|
|
help='Specify input registry XML')
|
|
parser.add_argument('-output', action='store',
|
|
required=True,
|
|
help='Specify output registry XML')
|
|
parser.add_argument('-keepAPI', action='store',
|
|
default=None,
|
|
help='Specify API name whose \'api\' tags are kept')
|
|
|
|
args = parser.parse_args()
|
|
|
|
tree = etree.parse(args.input)
|
|
if args.keepAPI is not None:
|
|
stripNonmatchingAPIs(tree.getroot(), args.keepAPI, actuallyDelete = True)
|
|
tree.write(args.output)
|
|
|