Edit

IABSD.fr/xenocara/lib/mesa/src/intel/genxml/genxml_import.py

Branch :

  • Show log

    Commit

  • Author : jsg
    Date : 2024-04-02 09:25:31
    Hash : 874d2ba3
    Message : Import Mesa 23.3.6

  • lib/mesa/src/intel/genxml/genxml_import.py
  • #!/usr/bin/env python3
    # Copyright © 2019, 2022 Intel Corporation
    # SPDX-License-Identifier: MIT
    
    from __future__ import annotations
    import argparse
    import copy
    import intel_genxml
    import pathlib
    import typing
    
    
    def main() -> None:
        parser = argparse.ArgumentParser()
        parser.add_argument('files', nargs='*',
                            default=pathlib.Path(__file__).parent.glob('*.xml'),
                            type=pathlib.Path)
    
        g = parser.add_mutually_exclusive_group(required=True)
        g.add_argument('--import', dest='_import', action='store_true',
                       help='Import and optimize genxml')
        g.add_argument('--flatten', action='store_true',
                       help='Remove imports from genxml')
        g.add_argument('--validate', action='store_true',
                       help='Validate genxml has no items duplicating imports')
    
        parser.add_argument('--quiet', action='store_true')
        args: Args = parser.parse_args()
    
        filenames = list(args.files)
        intel_genxml.sort_genxml_files(filenames)
        for filename in filenames:
            if not args.quiet:
                print('Processing {}... '.format(filename), end='', flush=True)
    
            genxml = intel_genxml.GenXml(filename)
    
            if args.validate:
                original = copy.deepcopy(genxml)
                genxml.optimize_xml_import()
                assert genxml.is_equivalent_xml(original), \
                    f'{filename} is invalid, run genxml_import.py to fix it'
            elif args._import:
                genxml.add_xml_imports()
                genxml.optimize_xml_import()
                genxml.write_file()
            elif args.flatten:
                genxml.flatten_imported()
                genxml.write_file()
    
            if not args.quiet:
                print('done.')
    
    
    if __name__ == '__main__':
        main()