diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2017-01-09 15:09:53 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2017-01-09 17:30:44 +0800 |
commit | 4bcad96c5a3f1ab17187e264e0e550fab56a29dc (patch) | |
tree | c8b60c5178121739df29c0507482170a5764db89 /win32/gipc.py | |
parent | 46b6521c246948182d5ac19e2c5c5a719f1e3825 (diff) | |
download | gobject-introspection-4bcad96c5a3f1ab17187e264e0e550fab56a29dc.tar.gz |
Visual Studio builds: Move build files to win32/
As suggested, we don't really need two layers of directories to get to the
projects, so move the project files to be under win32/ rather than
build/win32/.
Diffstat (limited to 'win32/gipc.py')
-rw-r--r-- | win32/gipc.py | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/win32/gipc.py b/win32/gipc.py new file mode 100644 index 00000000..9fd066c8 --- /dev/null +++ b/win32/gipc.py @@ -0,0 +1,101 @@ +#!/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 = {'@bindir@': '${exec_prefix}/bin', + '@datarootdir@': '${exec_prefix}/share', + '@datadir@': '${datarootdir}', + '@EXEEXT@': '.exe', + '@FFI_PC_CFLAGS@': '', + '@FFI_PC_PACKAGES@': '', + '@FFI_PC_LIBS@': '', + '${bindir}/g-ir-scanner': 'python ${bindir}/g-ir-scanner'} + + pkg_replace_items.update(base_pc.base_replace_items) + + # Generate gobject-introspection-1.0.pc + replace_multi(base_pc.top_srcdir + '/gobject-introspection-1.0.pc.in', + base_pc.srcdir + '/gobject-introspection-1.0.pc', + pkg_replace_items) + + # Generate gobject-introspection-no-export-1.0.pc + replace_multi(base_pc.top_srcdir + '/gobject-introspection-no-export-1.0.pc.in', + base_pc.srcdir + '/gobject-introspection-no-export-1.0.pc', + pkg_replace_items) + + # Generate a generic .pc file for Cairo, that is just sufficient for our purposes + cairo_version = '1.14.6' # Use the latest stable version, for now. + cairo_pc = open(base_pc.srcdir + '/cairo.pc', 'w') + cairo_pc.write('prefix=' + base_pc.prefix + '\n') + cairo_pc.write('exec_prefix=${prefix}\n') + cairo_pc.write('libdir=${prefix}/lib\n') + cairo_pc.write('includedir=${prefix}/include\n\n') + cairo_pc.write('Name: cairo\n') + cairo_pc.write('Description: generic cairo pkg-config file\n') + cairo_pc.write('Version: ' + cairo_version + '\n\n') + cairo_pc.write('Requires.private:\n') + cairo_pc.write('Libs: -L${libdir} -lcairo\n') + cairo_pc.write('Libs.private:\n') + cairo_pc.write('Cflags: -I${includedir}\n') + cairo_pc.close() + + # Generate a generic .pc file for Cairo-Win32, that is just sufficient for our + # purposes + # Just make a copy of the cairo.pc we just generated and replace the items as needed + cairo_win32_replace_items = \ + {'generic cairo pkg-config file': 'generic cairo-win32 pkg-config file'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/cairo-win32.pc', + cairo_win32_replace_items) + + # Generate a generic .pc file for Cairo-GObject, that is just sufficient for our + # purposes + # Just make a copy of the cairo.pc we just generated and replace the items as needed + cairo_gobject_replace_items = \ + {'Requires.private:': 'Requires.private: gobject-2.0,glib-2.0', + 'generic cairo pkg-config file': 'generic cairo-gobject pkg-config file', + '-lcairo': '-lcairo-gobject'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/cairo-gobject.pc', + cairo_gobject_replace_items) + + # Generate a generic .pc file for libxml2, that is just sufficient for our purposes + libxml2_version = '2.9.3' # Use the latest stable version, for now. + libxml2_replace_items = \ + {'Name: cairo': 'Name: libXML', + 'Version: ' + cairo_version: 'Version: ' + libxml2_version, + 'generic cairo pkg-config file': 'generic libXML2 pkg-config file', + '-lcairo': '-llibxml2', + 'Cflags: -I${includedir}': 'Cflags: -I${includedir}/libxml2'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/libxml-2.0.pc', + libxml2_replace_items) + + # Generate a generic .pc file for freetype2, that is just sufficient for our purposes + ft2_version = '2.6.3' # Use the latest stable version, for now. + ft2_replace_items = \ + {'Name: cairo': 'Name: FreeType 2', + 'Version: ' + cairo_version: 'Version: ' + ft2_version, + 'generic cairo pkg-config file': 'generic FreeType2 pkg-config file', + '-lcairo': '-lfreetype'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/freetype2.pc', + ft2_replace_items) + +if __name__ == '__main__': + sys.exit(main(sys.argv)) |