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