diff options
Diffstat (limited to 'win32/glibpc.py')
-rw-r--r-- | win32/glibpc.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/win32/glibpc.py b/win32/glibpc.py new file mode 100644 index 000000000..b04dc2433 --- /dev/null +++ b/win32/glibpc.py @@ -0,0 +1,89 @@ +#!/usr/bin/python +# +# Utility script to generate .pc files for GLib +# for Visual Studio builds, to be used for +# building introspection files + +# Author: Fan, Chun-wei +# Date: March 10, 2016 + +import os +import sys + +from replace import replace_multi +from pc_base import BasePCItems + +def main(argv): + base_pc = BasePCItems() + + base_pc.setup(argv) + pkg_replace_items = {'@G_THREAD_CFLAGS@': '', + '@G_THREAD_LIBS@': '', + '@CARBON_LIBS@': '', + '@COCOA_LIBS@': ''} + + glib_replace_items = {'glib-genmarshal': '${exec_prefix}/bin/glib-genmarshal', + 'glib-mkenums': 'perl ${exec_prefix}/bin/glib-mkenums', + 'gobject-query': '${exec_prefix}/bin/gobject-query', + '@PCRE_REQUIRES@': '', + '@INTLLIBS@': '-lintl', + '@G_LIBS_EXTRA@': '', + '@PCRE_LIBS@': '', + '@ICONV_LIBS@': '-liconv', + '@GLIB_EXTRA_CFLAGS@': ''} + + pkg_replace_items.update(base_pc.base_replace_items) + + glib_replace_items.update(pkg_replace_items) + + # Generate glib-2.0.pc + replace_multi(base_pc.top_srcdir + '/glib-2.0.pc.in', + base_pc.srcdir + '/glib-2.0.pc', + glib_replace_items) + + # Generate gthread-2.0.pc + replace_multi(base_pc.top_srcdir + '/gthread-2.0.pc.in', + base_pc.srcdir + '/gthread-2.0.pc', + pkg_replace_items) + + # Generate gmodule*-2.0.pc + gmodule_replace_items = {'@G_MODULE_SUPPORTED@': 'yes', + '@G_MODULE_LDFLAGS@': '', + '@G_MODULE_LIBS@': ''} + gmodule_replace_items.update(pkg_replace_items) + replace_multi(base_pc.top_srcdir + '/gmodule-2.0.pc.in', + base_pc.srcdir + '/gmodule-2.0.pc', + gmodule_replace_items) + replace_multi(base_pc.top_srcdir + '/gmodule-export-2.0.pc.in', + base_pc.srcdir + '/gmodule-export-2.0.pc', + gmodule_replace_items) + replace_multi(base_pc.top_srcdir + '/gmodule-no-export-2.0.pc.in', + base_pc.srcdir + '/gmodule-no-export-2.0.pc', + gmodule_replace_items) + + # Generate gobject-2.0.pc + gobject_replace_items = {'@LIBFFI_LIBS@': ''} + gobject_replace_items.update(pkg_replace_items) + replace_multi(base_pc.top_srcdir + '/gobject-2.0.pc.in', + base_pc.srcdir + '/gobject-2.0.pc', + gobject_replace_items) + + # Generate gio*-2.0.pc + gio_replace_items = {'@GIO_MODULE_DIR@': '${exec_prefix}/bin/gio/modules', + '@ZLIB_LIBS@': '-lzlib1', + '@NETWORK_LIBS@': '-lws2_32', + '@SELINUX_LIBS@': '', + '@LIBMOUNT_LIBS@': '', + 'glib-compile-schemas': '${exec_prefix}/bin/glib-compile-schemas', + 'glib-compile-resources': '${exec_prefix}/bin/glib-compile-resources', + 'gdbus-codegen': 'python ${exec_prefix}/bin/gdbus-codegen'} + gio_replace_items.update(pkg_replace_items) + replace_multi(base_pc.top_srcdir + '/gio-2.0.pc.in', + base_pc.srcdir + '/gio-2.0.pc', + gio_replace_items) + replace_multi(base_pc.top_srcdir + '/gio-windows-2.0.pc.in', + base_pc.srcdir + '/gio-windows-2.0.pc', + pkg_replace_items) + +if __name__ == '__main__': + sys.exit(main(sys.argv)) |