freebsd-ports/www/firefox/files/patch-bug847568
Baptiste Daroussin d1c1b4f188 Add missing patches for firefox 32.0
Submitted by:	Jan Beich
2014-09-09 15:11:07 +00:00

208 lines
6 KiB
Text

# Allow building against system-wide graphite2/harfbuzz.
diff --git config/Makefile.in config/Makefile.in
index 14bfc0d..5383399 100644
--- config/Makefile.in
+++ config/Makefile.in
@@ -77,6 +77,8 @@ export:: $(export-preqs)
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
+ -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
+ -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
$(INSTALL) system_wrappers $(DIST)
diff --git config/system-headers config/system-headers
index 18e8703..bdc5f82 100644
--- config/system-headers
+++ config/system-headers
@@ -1145,3 +1145,11 @@ unicode/utypes.h
#endif
libutil.h
unwind.h
+#if MOZ_NATIVE_GRAPHITE2==1
+graphite2/Font.h
+graphite2/Segment.h
+#endif
+#if MOZ_NATIVE_HARFBUZZ==1
+harfbuzz/hb-ot.h
+harfbuzz/hb.h
+#endif
diff --git configure.in configure.in
index ac38f40..87536b7 100644
--- configure.in
+++ configure.in
@@ -8032,6 +8032,52 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
+dnl Check for harfbuzz
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-harfbuzz,
+[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)],
+MOZ_NATIVE_HARFBUZZ=1,
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.25)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
+AC_SUBST(MOZ_HARFBUZZ_CFLAGS)
+AC_SUBST(MOZ_HARFBUZZ_LIBS)
+
+dnl ========================================================
+dnl Check for graphite2
+dnl ========================================================
+MOZ_ARG_WITH_BOOL(system-graphite2,
+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)],
+MOZ_NATIVE_GRAPHITE2=1,
+MOZ_NATIVE_GRAPHITE2=)
+
+if test -n "$MOZ_NATIVE_GRAPHITE2"; then
+ PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2)
+
+ dnl graphite2.pc has bogus version, check manually
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
+ #if !GR2_VERSION_REQUIRE(1,2,4)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
+fi
+
+AC_SUBST(MOZ_NATIVE_GRAPHITE2)
+AC_SUBST(MOZ_GRAPHITE2_CFLAGS)
+AC_SUBST(MOZ_GRAPHITE2_LIBS)
+
+dnl ========================================================
dnl Check for pixman and cairo
dnl ========================================================
diff --git content/base/src/moz.build content/base/src/moz.build
index d4f6380..0ee55df 100644
--- content/base/src/moz.build
+++ content/base/src/moz.build
@@ -179,6 +179,9 @@ SOURCES += [
'nsObjectLoadingContent.cpp',
]
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']]
+
EXTRA_COMPONENTS += [
'contentAreaDropListener.js',
'contentAreaDropListener.manifest',
diff --git gfx/moz.build gfx/moz.build
index 519aa46..6929751 100644
--- gfx/moz.build
+++ gfx/moz.build
@@ -7,6 +7,12 @@
if CONFIG['MOZ_TREE_CAIRO']:
DIRS += ['cairo']
+if not CONFIG['MOZ_NATIVE_GRAPHITE2']:
+ DIRS += ['graphite2/src' ]
+
+if not CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ DIRS += ['harfbuzz/src']
+
DIRS += [
'2d',
'ycbcr',
@@ -15,8 +21,6 @@ DIRS += [
'qcms',
'gl',
'layers',
- 'graphite2/src',
- 'harfbuzz/src',
'ots/src',
'thebes',
'ipc',
diff --git gfx/skia/Makefile.in gfx/skia/Makefile.in
index ee0efb2..98e169d6f 100644
--- gfx/skia/Makefile.in
+++ gfx/skia/Makefile.in
@@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS)
endif
+ifdef MOZ_NATIVE_HARFBUZZ
+OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
+endif
+
include $(topsrcdir)/config/rules.mk
ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1)
diff --git gfx/thebes/Makefile.in gfx/thebes/Makefile.in
index 45c36ae..79d32cf 100644
--- gfx/thebes/Makefile.in
+++ gfx/thebes/Makefile.in
@@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFINES))
CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
+ifdef MOZ_NATIVE_GRAPHITE2
+CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS)
+endif
+
+ifdef MOZ_NATIVE_HARFBUZZ
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
+endif
+
ifeq ($(MOZ_WIDGET_TOOLKIT),android)
CXXFLAGS += $(CAIRO_FT_CFLAGS)
endif
diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in
index f6b9f7c..60863f4 100644
--- intl/unicharutil/util/Makefile.in
+++ intl/unicharutil/util/Makefile.in
@@ -21,3 +21,7 @@ ifdef _MSC_VER
OS_COMPILE_CXXFLAGS += -Zl
OS_COMPILE_CFLAGS += -Zl
endif
+
+ifdef MOZ_NATIVE_HARFBUZZ
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
+endif
diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in
index 1cacbd7..f5d72bb 100644
--- netwerk/dns/Makefile.in
+++ netwerk/dns/Makefile.in
@@ -5,6 +5,10 @@
include $(topsrcdir)/config/rules.mk
+ifdef MOZ_NATIVE_HARFBUZZ
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
+endif
+
# Generate the include file containing compact, static definitions
# for effective TLD data.
etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index 67f0db9..d42137a 100644
--- toolkit/library/libxul.mk
+++ toolkit/library/libxul.mk
@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN
EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
endif
+ifdef MOZ_NATIVE_GRAPHITE2
+EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS)
+endif
+
+ifdef MOZ_NATIVE_HARFBUZZ
+EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS)
+endif
+
ifdef MOZ_DMD
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib)
endif