Edit

kc3-lang/libxkbcommon/scripts/map-to-def

Branch :

  • Show log

    Commit

  • Author : Pierre Le Marre
    Date : 2023-09-28 09:50:43
    Hash : 1a4a89a7
    Message : Python: make ruff & black happy

  • scripts/map-to-def
  • #!/usr/bin/env python
    
    """A script to generate MSVC Module-Definition files from version-script
    files (which are maintained manually)."""
    
    import re
    import sys
    import pathlib
    
    
    def symbols_from_map(path):
        return re.findall(r"^\s+(r?xkb_.*);", path.read_text("utf-8"), re.MULTILINE)
    
    
    if 2 > len(sys.argv) > 3:
        raise SystemExit("Usage: {} file.map [file.def]".format(sys.argv[0]))
    
    
    map_file = pathlib.Path(sys.argv[1])
    map_symbols = set(symbols_from_map(map_file))
    
    if len(sys.argv) == 3:
        def_file = open(sys.argv[2], "w", encoding="utf-8")
    else:
        def_file = sys.stdout
    
    def_file.write("LIBRARY {}\n".format(map_file.stem))
    def_file.write("EXPORTS\n")
    for symbol in sorted(map_symbols):
        def_file.write("\t{}\n".format(symbol))