| #!/usr/bin/env python3 |
| # -*- coding: utf-8 -*- |
| |
| import sys |
| import re |
| import os |
| |
| debug = os.getenv("GIO_GENTYPEFUNCS_DEBUG") is not None |
| |
| out_file = sys.argv[1] |
| in_files = sys.argv[2:] |
| |
| funcs = [] |
| |
| |
| if debug: |
| print("Output file: ", out_file) |
| |
| if debug: |
| print(len(in_files), "input files") |
| |
| for filename in in_files: |
| if debug: |
| print("Input file: ", filename) |
| with open(filename, "rb") as f: |
| for line in f: |
| line = line.rstrip(b"\n").rstrip(b"\r") |
| # print line |
| match = re.search(b"\bg_[a-zA-Z0-9_]*_get_type\b", line) |
| if match: |
| func = match.group(0) |
| if func not in funcs: |
| funcs.append(func) |
| if debug: |
| print("Found ", func) |
| |
| file_output = "G_GNUC_BEGIN_IGNORE_DEPRECATIONS\n" |
| |
| funcs = sorted(funcs) |
| |
| for f in funcs: |
| if f not in ["g_io_extension_get_type", "g_settings_backend_get_type"]: |
| file_output += "*tp++ = {0} ();\n".format(f) |
| |
| if debug: |
| print(len(funcs), "functions") |
| |
| ofile = open(out_file, "w") |
| ofile.write(file_output) |
| ofile.close() |