diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2016-04-13 16:48:22 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2016-04-13 16:48:22 +0800 |
commit | ee56f10fc7701ef7d6ef7cbfe9c3902fbc25539c (patch) | |
tree | aa56a1a57001800dd1cf08210d0afe264e8e6b2d | |
parent | f5565ba632cf78ca2bd4b538eac1bf0cb8b393bd (diff) | |
download | gobject-introspection-ee56f10fc7701ef7d6ef7cbfe9c3902fbc25539c.tar.gz |
MSVC builds: Generate .pc files for external packages
That is, for Cairo, Freetype and libxml2, as packages that we support
for Visual Studio builds depend on these packages, specifically for
generating the introspection files for them.
These are generated with rather generic info in them, so that they are
sufficient for our purposes here.
-rw-r--r-- | build/win32/gipc.py | 50 | ||||
-rw-r--r-- | build/win32/vs10/gi-install.propsin | 6 | ||||
-rw-r--r-- | build/win32/vs9/gi-install.vcproj | 8 | ||||
-rw-r--r-- | build/win32/vs9/gi-install.vspropsin | 4 |
4 files changed, 63 insertions, 5 deletions
diff --git a/build/win32/gipc.py b/build/win32/gipc.py index 281f07f8..16eba1fc 100644 --- a/build/win32/gipc.py +++ b/build/win32/gipc.py @@ -38,5 +38,55 @@ def main(argv): 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-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)) diff --git a/build/win32/vs10/gi-install.propsin b/build/win32/vs10/gi-install.propsin index 1b112988..95aa7462 100644 --- a/build/win32/vs10/gi-install.propsin +++ b/build/win32/vs10/gi-install.propsin @@ -73,8 +73,12 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig </GIDoInstall> - <GIPCFiles>..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc</GIPCFiles> + <GIPCFiles>..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc</GIPCFiles> <GIGenPC>$(PythonDir)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir)</GIGenPC> <GIGenPCX64>$(PythonDirX64)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir)</GIGenPCX64> </PropertyGroup> diff --git a/build/win32/vs9/gi-install.vcproj b/build/win32/vs9/gi-install.vcproj index 212bf54c..8625b5e7 100644 --- a/build/win32/vs9/gi-install.vcproj +++ b/build/win32/vs9/gi-install.vcproj @@ -86,7 +86,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPC)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> </FileConfiguration> <FileConfiguration Name="Release|Win32"> @@ -94,7 +94,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPC)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> </FileConfiguration> <FileConfiguration Name="Debug|x64"> @@ -102,7 +102,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPCX64)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> </FileConfiguration> <FileConfiguration Name="Release|x64"> @@ -110,7 +110,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPCX64)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> </FileConfiguration> </File> diff --git a/build/win32/vs9/gi-install.vspropsin b/build/win32/vs9/gi-install.vspropsin index b67b20ae..9a2ac9ed 100644 --- a/build/win32/vs9/gi-install.vspropsin +++ b/build/win32/vs9/gi-install.vspropsin @@ -75,6 +75,10 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion)
 mkdir $(CopyDir)\lib\pkgconfig
 copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig
 copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig
 +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig
 +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig
 +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig
 +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig
 " /> <UserMacro |