Sophie

Sophie

distrib > Mageia > 6 > armv5tl > media > core-release-src > by-pkgid > 00466a7e4c606f2d651be5b2d06178ae > files > 2

mingw-harfbuzz-1.2.7-2.mga6.src.rpm

--- harfbuzz-1.1.2/configure.ac.orig	2015-12-31 15:58:04.284354714 +0100
+++ harfbuzz-1.1.2/configure.ac	2015-12-31 16:08:46.848239317 +0100
@@ -432,6 +432,30 @@
 
 dnl ===========================================================================
 
+AC_ARG_ENABLE(delay-load,
+              [AC_HELP_STRING([--enable-delay-load],
+                              [makes the freetype dependency optional at runtime (win32 only)])],,
+              [enable_delay_load=no])
+
+AC_MSG_CHECKING([whether to enable the use of delay-loaded freetype dependencies])
+if test $hb_os_win32 = false; then
+  enable_delay_load=false
+fi
+AM_CONDITIONAL(ENABLE_DELAY_LOAD, test x"$enable_delay_load" = x"yes")
+AC_MSG_RESULT([$enable_delay_load])
+
+if test x"$enable_delay_load" = x"yes" ; then 
+  AC_CHECK_TOOL([GENDEF], [gendef])
+
+  AC_MSG_CHECKING([whether gendef was found])
+  if test x"$GENDEF" = x"" ; then
+    AC_MSG_ERROR([The gendef tool (required for delay loading the freetype dependency) could not be detected])
+  fi
+  AC_MSG_RESULT([yes])
+fi
+
+dnl ===========================================================================
+
 AC_CONFIG_FILES([
 Makefile
 src/Makefile
@@ -475,4 +499,5 @@
 	Documentation:		${have_gtk_doc}
 	GObject bindings:	${have_gobject}
 	Introspection:		${have_introspection}
+	Enable delay loading:   ${enable_delay_load}
 ])
--- harfbuzz-1.2.6/src/Makefile.am.orig	2016-03-15 23:14:32.000000000 +0100
+++ harfbuzz-1.2.6/src/Makefile.am	2016-04-09 22:32:19.462635695 +0200
@@ -51,14 +51,29 @@
 endif
 
 if HAVE_FREETYPE
-HBCFLAGS += $(FREETYPE_CFLAGS)
+if ENABLE_DELAY_LOAD
+# Create delay-loaded import library for freetype
+libfreetype-delay-loaded.dll.a:
+	DLL=$(bindir)/libfreetype-6.dll; \
+	if test ! -f "$$DLL" ; then \
+	  echo "*** File $$DLL could not be found, unable to create delay-loaded import library"; \
+	  exit 1; \
+	fi; \
+	$(GENDEF) - "$$DLL" > freetype_delay_load.def; \
+	$(DLLTOOL) --def freetype_delay_load.def --kill-at --output-delaylib libfreetype-delay-loaded.dll.a
+
+harfbuzz_delayload_ldflags = -Wl,libfreetype-delay-loaded.dll.a -Wl,-lmingwex -Wl,-lkernel32
+harfbuzz_delayload_dependency = libfreetype-delay-loaded.dll.a
+else
 HBLIBS   += $(FREETYPE_LIBS)
+endif
 # XXX
 # The following creates a recursive dependency on FreeType if FreeType is
 # built with HarfBuzz support enabled.  Newer pkg-config handles that just
 # fine but pkg-config 0.26 as shipped in Ubuntu 14.04 crashes.  Remove
 # in a year or two, or otherwise work around it...
 #HBDEPS   += $(FREETYPE_DEPS)
+HBCFLAGS  += $(FREETYPE_CFLAGS)
 HBSOURCES += $(HB_FT_sources)
 HBHEADERS += $(HB_FT_headers)
 endif
@@ -120,9 +135,9 @@
 
 libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS)
 libharfbuzz_la_CPPFLAGS = $(HBCFLAGS)
-libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined
+libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined $(harfbuzz_delayload_ldflags)
 libharfbuzz_la_LIBADD = $(HBLIBS)
-EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
+EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency) $(harfbuzz_delayload_dependency)
 pkginclude_HEADERS = $(HBHEADERS)
 nodist_pkginclude_HEADERS = $(HBNODISTHEADERS)
 pkgconfigdir = $(libdir)/pkgconfig