[gobject-introspection] MSVC builds: Generate .pc files for external packages



commit ee56f10fc7701ef7d6ef7cbfe9c3902fbc25539c
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Apr 13 16:48:22 2016 +0800

    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.

 build/win32/gipc.py                  |   50 ++++++++++++++++++++++++++++++++++
 build/win32/vs10/gi-install.propsin  |    6 +++-
 build/win32/vs9/gi-install.vcproj    |    8 +++---
 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 281f07f..16eba1f 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 1b11298..95aa746 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 212bf54..8625b5e 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 b67b20a..9a2ac9e 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]