mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
7115ccd3b0
The current approach of building the introspection files for GTK works, but is often cumbersome as one needs to set many environmental variables before launching a solution file, which runs a Windows batch script to generate the .gir/.typelib files. It was also possible to hand-run the batch script from the Visual Studio command prompt, but even more environmental variables need to be set. This changes the approach to build the introspection files using an NMake Makefile (but elimating from the Visual Studio Project Files the part to build the introspection files) to: -Make it clearer to the person building the introspection files what environmental variables are needed, specifically for PKG_CONFIG_PATH and MINGWDIR and CFG (formerly CONF). Setting stuff like VSVER, PLAT and BASEDIR is no longer required, which was a bit clunky. -Allows some more easier flexibility on the build of the intropsection files.
68 lines
2.4 KiB
Python
68 lines
2.4 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_filelist_gtk(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_filelist_gtk(srcroot, subdir_gtk, 'gtk_list')
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv))
|