Blame win32/glibpc.py

Packit ae235b
#!/usr/bin/python
Packit ae235b
#
Packit ae235b
# Utility script to generate .pc files for GLib
Packit ae235b
# for Visual Studio builds, to be used for
Packit ae235b
# building introspection files
Packit ae235b
Packit ae235b
# Author: Fan, Chun-wei
Packit ae235b
# Date: March 10, 2016
Packit ae235b
Packit ae235b
import os
Packit ae235b
import sys
Packit ae235b
Packit ae235b
from replace import replace_multi
Packit ae235b
from pc_base import BasePCItems
Packit ae235b
Packit ae235b
def main(argv):
Packit ae235b
    base_pc = BasePCItems()
Packit ae235b
Packit ae235b
    base_pc.setup(argv)
Packit ae235b
    pkg_replace_items = {'@G_THREAD_CFLAGS@': '',
Packit ae235b
                         '@G_THREAD_LIBS@': '',
Packit ae235b
                         '@CARBON_LIBS@': '',
Packit ae235b
                         '@COCOA_LIBS@': ''}
Packit ae235b
Packit ae235b
    glib_replace_items = {'glib-genmarshal': '${exec_prefix}/bin/glib-genmarshal',
Packit ae235b
              	          'glib-mkenums': 'perl ${exec_prefix}/bin/glib-mkenums',
Packit ae235b
              	          'gobject-query': '${exec_prefix}/bin/gobject-query',
Packit ae235b
              	          '@PCRE_REQUIRES@': '',
Packit ae235b
              	          '@INTLLIBS@': '-lintl',
Packit ae235b
              	          '@G_LIBS_EXTRA@': '',
Packit ae235b
              	          '@PCRE_LIBS@': '',
Packit ae235b
              	          '@ICONV_LIBS@': '-liconv',
Packit ae235b
              	          '@GLIB_EXTRA_CFLAGS@': ''}
Packit ae235b
Packit ae235b
    pkg_replace_items.update(base_pc.base_replace_items)
Packit ae235b
						 
Packit ae235b
    glib_replace_items.update(pkg_replace_items)
Packit ae235b
Packit ae235b
    # Generate glib-2.0.pc
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/glib-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/glib-2.0.pc',
Packit ae235b
                  glib_replace_items)
Packit ae235b
Packit ae235b
    # Generate gthread-2.0.pc
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gthread-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gthread-2.0.pc',
Packit ae235b
                  pkg_replace_items)
Packit ae235b
Packit ae235b
    # Generate gmodule*-2.0.pc
Packit ae235b
    gmodule_replace_items = {'@G_MODULE_SUPPORTED@': 'yes',
Packit ae235b
              	             '@G_MODULE_LDFLAGS@': '',
Packit ae235b
              	             '@G_MODULE_LIBS@': ''}
Packit ae235b
    gmodule_replace_items.update(pkg_replace_items)
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gmodule-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gmodule-2.0.pc',
Packit ae235b
                  gmodule_replace_items)
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gmodule-export-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gmodule-export-2.0.pc',
Packit ae235b
                  gmodule_replace_items)
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gmodule-no-export-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gmodule-no-export-2.0.pc',
Packit ae235b
                  gmodule_replace_items)
Packit ae235b
Packit ae235b
    # Generate gobject-2.0.pc
Packit ae235b
    gobject_replace_items = {'@LIBFFI_LIBS@': ''}
Packit ae235b
    gobject_replace_items.update(pkg_replace_items)
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gobject-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gobject-2.0.pc',
Packit ae235b
                  gobject_replace_items)
Packit ae235b
Packit ae235b
    # Generate gio*-2.0.pc
Packit ae235b
    gio_replace_items = {'@GIO_MODULE_DIR@': '${exec_prefix}/bin/gio/modules',
Packit ae235b
                         '@ZLIB_LIBS@': '-lzlib1',
Packit ae235b
                         '@NETWORK_LIBS@': '-lws2_32',
Packit ae235b
                         '@SELINUX_LIBS@': '',
Packit ae235b
                         '@LIBMOUNT_LIBS@': '',
Packit ae235b
                         'glib-compile-schemas': '${exec_prefix}/bin/glib-compile-schemas',
Packit ae235b
                         'glib-compile-resources': '${exec_prefix}/bin/glib-compile-resources',
Packit ae235b
                         'gdbus-codegen': 'python ${exec_prefix}/bin/gdbus-codegen'}
Packit ae235b
    gio_replace_items.update(pkg_replace_items)
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gio-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gio-2.0.pc',
Packit ae235b
                  gio_replace_items)
Packit ae235b
    replace_multi(base_pc.top_srcdir + '/gio-windows-2.0.pc.in',
Packit ae235b
                  base_pc.srcdir + '/gio-windows-2.0.pc',
Packit ae235b
                  pkg_replace_items)
Packit ae235b
Packit ae235b
if __name__ == '__main__':
Packit ae235b
    sys.exit(main(sys.argv))