| #!/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 not func 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() |