fontconfig: add patch for universal builds

fontconfig fails to build universally due to SIZEOF_VOID issues
that are solved by adapting the Macports patch for that to our
newer version of fontconfig.

Closes Homebrew/homebrew#15567.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This commit is contained in:
nibbles 2bits 2012-10-20 10:43:28 -07:00 committed by Adam Vandenberg
parent e135a40be5
commit 4ef247c6b6

View file

@ -12,9 +12,38 @@ class Fontconfig < Formula
depends_on :freetype
depends_on 'pkg-config' => :build
# Patch adapted from Macports patch for 2.9.0 defines sizeof based on __LP64__
# Fixes universal builds but seems groovy enough to apply in all cases.
# https://trac.macports.org/browser/trunk/dports/graphics/fontconfig/files/patch-check-arch-at-runtime.diff
def patches; DATA; end
def install
ENV.universal_binary if build.universal?
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
system "make install"
end
end
__END__
--- a/src/fcarch.h 2012-07-23 19:01:32.000000000 -0700
+++ b/src/fcarch.h 2012-10-20 10:29:15.000000000 -0700
@@ -46,6 +46,19 @@
* be64 1234 8 8
*/
+#ifdef __APPLE__
+# include <machine/endian.h>
+# undef SIZEOF_VOID_P
+# undef ALIGNOF_DOUBLE
+# ifdef __LP64__
+# define SIZEOF_VOID_P 8
+# define ALIGNOF_DOUBLE 8
+# else
+# define SIZEOF_VOID_P 4
+# define ALIGNOF_DOUBLE 4
+# endif
+#endif
+
#if defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN
# define FC_ARCH_ENDIAN "le"
#elif defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN