We now need to generate gtktypefuncs.c by ourselves, so modify the gentypefuncs.py script from master, and add a custom build step in the projects to generate gtktypefuncs.c. The custom build step for the 2008 projects will be added later.
54 lines
1.2 KiB
Python
54 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
import re
|
|
import os
|
|
|
|
debug = os.getenv('GTK_GENTYPEFUNCS_DEBUG') is not None
|
|
|
|
out_file = sys.argv[1]
|
|
in_file = sys.argv[2]
|
|
|
|
funcs = []
|
|
|
|
|
|
if debug: print ('Output file: ', out_file)
|
|
|
|
# if debug: print (len(in_files), 'input files')
|
|
|
|
def open_file(filename, mode):
|
|
if sys.version_info[0] < 3:
|
|
return open(filename, mode=mode)
|
|
else:
|
|
return open(filename, mode=mode, encoding='utf-8')
|
|
|
|
with open(in_file, 'r') as f:
|
|
for line in f:
|
|
line = line.rstrip('\n').rstrip('\r')
|
|
# print line
|
|
match = re.search(r'\bg[td]k_[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.startswith('gdk_x11') or f.startswith('gtk_socket') or f.startswith('gtk_plug'):
|
|
file_output += '#ifdef GDK_WINDOWING_X11\n'
|
|
file_output += '*tp++ = {0}();\n'.format(f)
|
|
file_output += '#endif\n'
|
|
else:
|
|
file_output += '*tp++ = {0}();\n'.format(f)
|
|
|
|
if debug: print (len(funcs), 'functions')
|
|
|
|
ofile = open(out_file, "w")
|
|
ofile.write(file_output)
|
|
ofile.close()
|