mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-17 23:10:22 +00:00
46802d33e1
Add support to build the introspection files for GdkWin32, as done recently in the autotools builds and clean up the NMake Makefile for building the introspection files a bit. For some reason, gdk_win32_display_manager_get_type() was not exported in gdk-3.0.lib, force its export, so that the GdkWin32-3.0.gir can be built properly with the Visual C++ builds. This is a known problem that some symbols in static libraries that are linked into a DLL in Visual C++, even if they were marked with __declspec(dllexport) via _GDK_EXTERN.
82 lines
3.0 KiB
Python
82 lines
3.0 KiB
Python
#!/usr/bin/python
|
|
# vim: encoding=utf-8
|
|
# Generate the file lists for processing with g-ir-scanner
|
|
import os
|
|
import sys
|
|
import re
|
|
import string
|
|
import subprocess
|
|
import optparse
|
|
|
|
from msvcfiles import read_vars_from_AM
|
|
|
|
def gen_gdk_filelist(srcroot, subdir, dest):
|
|
vars = read_vars_from_AM(os.path.join(srcroot, subdir, 'Makefile.am'),
|
|
vars = {},
|
|
conds = {},
|
|
filters = ['gdk_public_h_sources', 'gdk_c_sources'])
|
|
|
|
vars['gdk_enums'] = 'gdkenumtypes.c gdkenumtypes.h'
|
|
|
|
files = vars['gdk_public_h_sources'].split() + \
|
|
vars['gdk_c_sources'].split() + \
|
|
vars['gdk_enums'].split()
|
|
|
|
sources = [i for i in files if (i != 'gdkkeysyms-compat.h')]
|
|
|
|
with open(dest, 'w') as d:
|
|
for i in sources:
|
|
d.write(srcroot + '\\' + subdir + '\\' + i.replace('/', '\\') + '\n')
|
|
|
|
def gen_gdkwin32_filelist(srcroot, subdir, dest):
|
|
vars = read_vars_from_AM(os.path.join(srcroot, subdir, 'Makefile.am'),
|
|
vars = {},
|
|
conds = {'HAVE_INTROSPECTION': True,
|
|
'OS_WIN32': True},
|
|
filters = ['w32_introspection_files'])
|
|
|
|
files = vars['w32_introspection_files'].split()
|
|
|
|
with open(dest, 'w') as d:
|
|
for i in files:
|
|
d.write(srcroot + '\\' + subdir + '\\' + i.replace('/', '\\') + '\n')
|
|
|
|
def gen_gtk_filelist(srcroot, subdir, dest):
|
|
vars = read_vars_from_AM(os.path.join(srcroot, 'gtk', 'Makefile.am'),
|
|
vars = {},
|
|
conds = {'USE_WIN32': True,
|
|
'USE_QUARTZ': False,
|
|
'USE_X11': False,
|
|
'USE_EXTERNAL_ICON_CACHE': False},
|
|
filters = ['gtkinclude_HEADERS',
|
|
'deprecatedinclude_HEADERS',
|
|
'gtk_base_c_sources',
|
|
'gtk_clipboard_dnd_c_sources'])
|
|
|
|
vars['gtk_other_src'] = 'gtkprintoperation-win32.c gtktypebuiltins.h gtktypebuiltins.c'
|
|
|
|
files = vars['gtkinclude_HEADERS'].split() + \
|
|
vars['deprecatedinclude_HEADERS'].split() + \
|
|
vars['gtk_base_c_sources'].split() + \
|
|
vars['gtk_clipboard_dnd_c_sources'].split() + \
|
|
vars['gtk_other_src'].split()
|
|
|
|
sources = [i for i in files if not (i.endswith('private.h')) and i != 'gtktextdisplay.h' and i != 'gtktextlayout.h']
|
|
|
|
with open(dest, 'w') as d:
|
|
for i in sources:
|
|
d.write(srcroot + '\\' + subdir + '\\' + i.replace('/', '\\') + '\n')
|
|
|
|
def main(argv):
|
|
srcroot = '..'
|
|
subdir_gdk = 'gdk'
|
|
subdir_gtk = 'gtk'
|
|
|
|
gen_gdk_filelist(srcroot, subdir_gdk, 'gdk_list')
|
|
gen_gdkwin32_filelist(srcroot, subdir_gdk, 'gdkwin32_list')
|
|
gen_gtk_filelist(srcroot, subdir_gtk, 'gtk_list')
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv))
|