diff fuhtark_test/Vulkan-Headers-1.4.334/registry/stripAPI.py @ 1501:f40d9d814c08 default tip main

did: correct vulkan-api generator
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 23:34:29 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/Vulkan-Headers-1.4.334/registry/stripAPI.py	Wed Nov 26 23:34:29 2025 +0700
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+#
+# Copyright 2023-2025 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)
+