summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2016-04-13 16:48:22 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2016-04-13 16:48:22 +0800
commitee56f10fc7701ef7d6ef7cbfe9c3902fbc25539c (patch)
treeaa56a1a57001800dd1cf08210d0afe264e8e6b2d
parentf5565ba632cf78ca2bd4b538eac1bf0cb8b393bd (diff)
downloadgobject-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.py50
-rw-r--r--build/win32/vs10/gi-install.propsin6
-rw-r--r--build/win32/vs9/gi-install.vcproj8
-rw-r--r--build/win32/vs9/gi-install.vspropsin4
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)&#x0D;&#x0A;
mkdir $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
+copy ..\cairo.pc $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
+copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
+copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
+copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig&#x0D;&#x0A;
"
/>
<UserMacro