aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authornibbles 2bits2012-10-20 10:43:28 -0700
committerAdam Vandenberg2012-10-21 22:44:08 -0700
commit3267ddf4740a8b78d229a4140464b2695ed0778d (patch)
treedd1a356928f3ff9e85c24af83b0fbf4e577e79e2 /Library/Formula
parent48c616e67b335c74b7c959548aa5d6976ecbd094 (diff)
downloadhomebrew-3267ddf4740a8b78d229a4140464b2695ed0778d.tar.bz2
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 #15567. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/fontconfig.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/Library/Formula/fontconfig.rb b/Library/Formula/fontconfig.rb
index 9b72e037d..73ef5a3c3 100644
--- a/Library/Formula/fontconfig.rb
+++ b/Library/Formula/fontconfig.rb
@@ -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