Blame build/win32/gtkpc.py

Packit 98cdb6
#!/usr/bin/python
Packit 98cdb6
#
Packit 98cdb6
# Utility script to generate .pc files for GTK+
Packit 98cdb6
# for Visual Studio builds, to be used for
Packit 98cdb6
# building introspection files
Packit 98cdb6
Packit 98cdb6
# Author: Fan, Chun-wei
Packit 98cdb6
# Date: April 26, 2016
Packit 98cdb6
Packit 98cdb6
import os
Packit 98cdb6
import sys
Packit 98cdb6
import argparse
Packit 98cdb6
Packit 98cdb6
from replace import replace_multi, replace
Packit 98cdb6
from pc_base import BasePCItems
Packit 98cdb6
Packit 98cdb6
def main(argv):
Packit 98cdb6
    base_pc = BasePCItems()
Packit 98cdb6
Packit 98cdb6
    gdk_parser = argparse.ArgumentParser(description='Setup basic .pc file info')
Packit 98cdb6
    gdk_parser.add_argument('--host',
Packit 98cdb6
                            required=True,
Packit 98cdb6
                            help='Build type')
Packit 98cdb6
    base_pc.setup(argv, gdk_parser)
Packit 98cdb6
Packit 98cdb6
    atk_min_ver = '1.29.2'
Packit 98cdb6
    cairo_min_ver = '1.6'
Packit 98cdb6
    gdk_pixbuf_min_ver = '2.21.0'
Packit 98cdb6
    gdk_win32_sys_libs = '-lgdi32 -limm32 -lshell32 -lole32 -lwinmm'
Packit 98cdb6
    glib_min_ver = '2.28.0'
Packit 98cdb6
Packit 98cdb6
    cairo_backends = 'cairo-win32'
Packit 98cdb6
    gdktarget = 'win32'
Packit 98cdb6
    gio_package = 'gio-2.0 >= ' + glib_min_ver
Packit 98cdb6
Packit 98cdb6
    gdk_args = gdk_parser.parse_args()
Packit 98cdb6
Packit 98cdb6
    pkg_replace_items = {'@GTK_API_VERSION@': '2.0',
Packit 98cdb6
                         '@gdktarget@': gdktarget}
Packit 98cdb6
Packit 98cdb6
    pkg_required_packages = 'gdk-pixbuf-2.0 >= ' + gdk_pixbuf_min_ver + ' ' + \
Packit 98cdb6
                            'cairo >= ' + cairo_min_ver + ' '
Packit 98cdb6
Packit 98cdb6
    gdk_pc_replace_items = {'@GDK_PACKAGES@': gio_package + ' ' + \
Packit 98cdb6
                                              'pangowin32 pangocairo' + ' ' + \
Packit 98cdb6
                                              pkg_required_packages,
Packit 98cdb6
                            '@GDK_PRIVATE_PACKAGES@': gio_package + ' ' + cairo_backends,
Packit 98cdb6
                            '@GDK_EXTRA_LIBS@': gdk_win32_sys_libs,
Packit 98cdb6
                            '@GDK_EXTRA_CFLAGS@': ''}
Packit 98cdb6
Packit 98cdb6
    gtk_pc_replace_items = {'@host@': gdk_args.host,
Packit 98cdb6
                            '@GTK_BINARY_VERSION@': '2.10.0',
Packit 98cdb6
                            '@GTK_PACKAGES@': 'atk >= ' + atk_min_ver + ' ' + \
Packit 98cdb6
                                              pkg_required_packages + ' ' + \
Packit 98cdb6
                                              gio_package,
Packit 98cdb6
                            '@GTK_PRIVATE_PACKAGES@': 'atk',
Packit 98cdb6
                            '@GTK_EXTRA_CFLAGS@': '',
Packit 98cdb6
                            '@GTK_EXTRA_LIBS@': '',
Packit 98cdb6
                            '@GTK_EXTRA_CFLAGS@': ''}
Packit 98cdb6
Packit 98cdb6
    pkg_replace_items.update(base_pc.base_replace_items)
Packit 98cdb6
    gdk_pc_replace_items.update(pkg_replace_items)
Packit 98cdb6
    gtk_pc_replace_items.update(pkg_replace_items)
Packit 98cdb6
Packit 98cdb6
    # Generate gdk-2.0.pc
Packit 98cdb6
    replace_multi(base_pc.top_srcdir + '/gdk-2.0.pc.in',
Packit 98cdb6
                  base_pc.srcdir + '/gdk-2.0.pc',
Packit 98cdb6
                  gdk_pc_replace_items)
Packit 98cdb6
Packit 98cdb6
    # Generate gtk+-2.0.pc
Packit 98cdb6
    replace_multi(base_pc.top_srcdir + '/gtk+-2.0.pc.in',
Packit 98cdb6
                  base_pc.srcdir + '/gtk+-2.0.pc',
Packit 98cdb6
                  gtk_pc_replace_items)
Packit 98cdb6
Packit 98cdb6
    # Generate gail.pc
Packit 98cdb6
    replace_multi(base_pc.top_srcdir + '/gail.pc.in',
Packit 98cdb6
                  base_pc.srcdir + '/gail.pc',
Packit 98cdb6
                  pkg_replace_items)
Packit 98cdb6
Packit 98cdb6
if __name__ == '__main__':
Packit 98cdb6
    sys.exit(main(sys.argv))