[mingw-cairo] Re-added the delay-load changes now that we've got mingw-w64-tools in Fedora

epienbro epienbro at fedoraproject.org
Sat Mar 17 15:13:26 UTC 2012


commit 90dd92a100b0669933329dcd24d496681f797dc1
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sat Mar 17 16:12:50 2012 +0100

    Re-added the delay-load changes now that we've got mingw-w64-tools in Fedora

 mingw-cairo.spec |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 deletions(-)
---
diff --git a/mingw-cairo.spec b/mingw-cairo.spec
index 7529141..1be4c69 100644
--- a/mingw-cairo.spec
+++ b/mingw-cairo.spec
@@ -5,7 +5,7 @@
 
 Name:           mingw-cairo
 Version:        1.10.2
-Release:        11%{?dist}
+Release:        12%{?dist}
 Summary:        MinGW Windows Cairo library
 
 License:        LGPLv2 or MPLv1.1
@@ -51,6 +51,7 @@ BuildRequires:  mingw64-win-iconv
 BuildRequires:  mingw64-zlib
 BuildRequires:  mingw64-glib2
 
+BuildRequires:  mingw-w64-tools
 BuildRequires:  autoconf automake libtool
 BuildRequires:  pkgconfig
 
@@ -105,7 +106,27 @@ Static version of the MinGW Windows Cairo library.
 NOCONFIGURE=1 ./autogen.sh
 
 %build
-%mingw_configure \
+# Function to generate an import library for delay-loading
+gen_delay_lib()
+{
+    local DLL="$1"
+    local OUT_IMPLIB="$2"
+
+    gendef - "%{mingw32_bindir}/$DLL" > build_win32/delay_load.def
+    %{mingw32_dlltool} --def build_win32/delay_load.def --kill-at --output-delaylib "build_win32/$OUT_IMPLIB"
+
+    gendef - "%{mingw64_bindir}/$DLL" > build_win64/delay_load.def
+    %{mingw64_dlltool} --def build_win64/delay_load.def --kill-at --output-delaylib "build_win64/$OUT_IMPLIB"
+}
+
+mkdir build_win32
+mkdir build_win64
+
+# Generate import libs for delay-loading fontconfig and freetype
+gen_delay_lib libfontconfig-1.dll libfontconfig-delayed.dll.a
+gen_delay_lib libfreetype-6.dll libfreetype-delayed.dll.a
+
+MINGW_CONFIGURE_ARGS=" \
   --disable-pthread \
   --disable-xlib \
   --disable-xcb \
@@ -115,7 +136,21 @@ NOCONFIGURE=1 ./autogen.sh
   --enable-png \
   --enable-static \
   --enable-gobject \
-  --enable-tee
+  --enable-tee"
+
+# The regular %%mingw_configure macro can't be used here as we need to inject custom
+# environment variables which are different between the win32 and win64 build
+pushd build_win32
+    %mingw32_configure \
+        FONTCONFIG_LIBS="-L`pwd` -lfontconfig-delayed" \
+        FREETYPE_LIBS="-L`pwd` -lfreetype-delayed"
+popd
+
+pushd build_win64
+    %mingw64_configure \
+        FONTCONFIG_LIBS="-L`pwd` -lfontconfig-delayed" \
+        FREETYPE_LIBS="-L`pwd` -lfreetype-delayed"
+popd
 
 %mingw_make %{?_smp_mflags}
 
@@ -189,6 +224,9 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 
 
 %changelog
+* Sat Mar 17 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.10.2-12
+- Make freetype/fontconfig an optional runtime dependency (delay-load)
+
 * Sun Mar 11 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.10.2-11
 - Added win64 support
 - Enable tee support


More information about the scm-commits mailing list