diff options
Diffstat (limited to 'mail/thunderbird-esr/files/patch-bug847568')
-rw-r--r-- | mail/thunderbird-esr/files/patch-bug847568 | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/mail/thunderbird-esr/files/patch-bug847568 b/mail/thunderbird-esr/files/patch-bug847568 new file mode 100644 index 000000000000..2ee46579d43d --- /dev/null +++ b/mail/thunderbird-esr/files/patch-bug847568 @@ -0,0 +1,260 @@ +# Allow building against system-wide graphite2/harfbuzz. + +diff --git config/system-headers.mozbuild config/system-headers.mozbuild +index 0c06f581b33b..10f125be25ab 100644 +--- config/system-headers.mozbuild ++++ config/system-headers.mozbuild +@@ -1307,6 +1307,19 @@ if CONFIG["MOZ_ENABLE_LIBPROXY"]: + "proxy.h", + ] + ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++ system_headers += [ ++ 'graphite2/Font.h', ++ 'graphite2/Segment.h', ++ ] ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ system_headers += [ ++ 'harfbuzz/hb-glib.h', ++ 'harfbuzz/hb-ot.h', ++ 'harfbuzz/hb.h', ++ ] ++ + if CONFIG["MOZ_SYSTEM_ICU"]: + system_headers += [ + "unicode/calendar.h", +diff --git dom/base/moz.build dom/base/moz.build +index 14c9f9dd96fb..bd1c8f241e9b 100644 +--- dom/base/moz.build ++++ dom/base/moz.build +@@ -606,6 +606,9 @@ FINAL_LIBRARY = "xul" + if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": + CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] + ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] ++ + GeneratedFile( + "UseCounterList.h", + script="gen-usecounters.py", +diff --git gfx/graphite2/geckoextra/moz.build gfx/graphite2/geckoextra/moz.build +new file mode 100644 +index 000000000000..24e8d7a03274 +--- /dev/null ++++ gfx/graphite2/geckoextra/moz.build +@@ -0,0 +1,21 @@ ++# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- ++# vim: set filetype=python: ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++EXPORTS.graphite2 += [ ++ 'include/GraphiteExtra.h', ++ 'include/GraphiteStructsForRLBox.h', ++] ++ ++UNIFIED_SOURCES += [ ++ '../geckoextra/src/GraphiteExtra.cpp', ++] ++ ++CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] ++ ++# Match bundled graphite2 configuration ++AllowCompilerWarnings() ++ ++FINAL_LIBRARY = 'xul' +diff --git gfx/harfbuzz/README-mozilla.fbsd gfx/harfbuzz/README-mozilla.fbsd +new file mode 100644 +index 000000000000..2a10eb1e2b42 +--- /dev/null ++++ gfx/harfbuzz/README-mozilla.fbsd +@@ -0,0 +1,4 @@ ++The in-tree copy may be omitted during build by --with-system-harfbuzz. ++Make sure to keep pkg-config version check within toolkit/moz.configure in sync ++with checkout version or increment latest tag by one if it's not based ++on upstream release. +diff --git gfx/moz.build gfx/moz.build +index 56ea317bedfc..07dd7f66f1bc 100644 +--- gfx/moz.build ++++ gfx/moz.build +@@ -10,6 +10,14 @@ with Files("**"): + with Files("wr/**"): + BUG_COMPONENT = ("Core", "Graphics: WebRender") + ++if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: ++ DIRS += ["graphite2/geckoextra"] ++else: ++ DIRS += ["graphite2/src" ] ++ ++if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ DIRS += ["harfbuzz/src"] ++ + DIRS += [ + "cairo", + "2d", +@@ -19,8 +27,6 @@ DIRS += [ + "qcms", + "gl", + "layers", +- "graphite2/src", +- "harfbuzz/src", + "ots/src", + "thebes", + "ipc", +diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py +index c161d24df853..8c7dd395b371 100755 +--- gfx/skia/generate_mozbuild.py ++++ gfx/skia/generate_mozbuild.py +@@ -91,6 +91,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): + '-Wno-unused-private-field', + ] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'): + LOCAL_INCLUDES += [ + "/gfx/cairo/cairo/src", +diff --git gfx/skia/moz.build gfx/skia/moz.build +index 83aa2957a938..0859316a1f09 100644 +--- gfx/skia/moz.build ++++ gfx/skia/moz.build +@@ -601,6 +601,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): + '-Wno-unused-private-field', + ] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'): + LOCAL_INCLUDES += [ + "/gfx/cairo/cairo/src", +diff --git gfx/thebes/moz.build gfx/thebes/moz.build +index fd1fcf236d81..958d3f699ffd 100644 +--- gfx/thebes/moz.build ++++ gfx/thebes/moz.build +@@ -293,7 +293,13 @@ if CONFIG["MOZ_WAYLAND"]: + + LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] + +-DEFINES["GRAPHITE2_STATIC"] = True ++if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: ++ CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"] ++else: ++ DEFINES["GRAPHITE2_STATIC"] = True ++ ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] + + CXXFLAGS += ["-Werror=switch"] + +diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build +index 2bbd00415cae..f66bd37695d4 100644 +--- intl/unicharutil/util/moz.build ++++ intl/unicharutil/util/moz.build +@@ -24,6 +24,9 @@ UNIFIED_SOURCES += [ + "nsUnicodeProperties.cpp", + ] + ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] ++ + include("/ipc/chromium/chromium-config.mozbuild") + + GeneratedFile( +diff --git netwerk/dns/moz.build netwerk/dns/moz.build +index c926d14707d1..35a3f33e2885 100644 +--- netwerk/dns/moz.build ++++ netwerk/dns/moz.build +@@ -112,6 +112,9 @@ GeneratedFile( + "etld_data.inc", script="prepare_tlds.py", inputs=["effective_tld_names.dat"] + ) + ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] ++ + # need to include etld_data.inc + LOCAL_INCLUDES += [ + "/netwerk/base", +diff --git old-configure.in old-configure.in +index 2ca88a20a4b3..88bc9b873eff 100644 +--- old-configure.in ++++ old-configure.in +@@ -1067,6 +1067,27 @@ fi + AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID) + AC_SUBST(MOZ_MACBUNDLE_ID) + ++dnl ======================================================== ++dnl Check for graphite2 ++dnl ======================================================== ++if test -n "$MOZ_SYSTEM_GRAPHITE2"; then ++ dnl graphite2.pc has bogus version, check manually ++ _SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" ++ 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,3,14) ++ #error "Insufficient graphite2 version." ++ #endif ++ ], [], ++ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) ++ CFLAGS=$_SAVE_CFLAGS ++fi ++ + dnl ======================================================== + dnl = Child Process Name for IPC + dnl ======================================================== +diff --git toolkit/library/moz.build toolkit/library/moz.build +index 76746f308011..f6844f4c400b 100644 +--- toolkit/library/moz.build ++++ toolkit/library/moz.build +@@ -292,6 +292,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]: + if CONFIG["MOZ_SYSTEM_WEBP"]: + OS_LIBS += CONFIG["MOZ_WEBP_LIBS"] + ++if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: ++ OS_LIBS += CONFIG["MOZ_GRAPHITE2_LIBS"] ++ ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"] ++ + if CONFIG["MOZ_SYSTEM_LIBEVENT"]: + OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"] + +diff --git toolkit/moz.configure toolkit/moz.configure +index a060a59f728f..f0778d1ae2d6 100644 +--- toolkit/moz.configure ++++ toolkit/moz.configure +@@ -1218,6 +1218,26 @@ def enable_cairo_ft(target, tree_freetype, freetype2_info): + set_config("MOZ_ENABLE_CAIRO_FT", True, when=enable_cairo_ft) + set_config("CAIRO_FT_CFLAGS", ft2_info.cflags, when=enable_cairo_ft) + ++# Graphite2 ++# ============================================================== ++option("--with-system-graphite2", ++ help="Use system graphite2 (located with pkgconfig)") ++ ++system_graphite2 = pkg_check_modules("MOZ_GRAPHITE2", "graphite2", ++ when="--with-system-graphite2") ++ ++set_config("MOZ_SYSTEM_GRAPHITE2", depends_if(system_graphite2)(lambda _: True)) ++ ++# HarfBuzz ++# ============================================================== ++option("--with-system-harfbuzz", ++ help="Use system harfbuzz (located with pkgconfig)") ++ ++system_harfbuzz = pkg_check_modules("MOZ_HARFBUZZ", "harfbuzz >= 2.7.4", ++ when="--with-system-harfbuzz") ++ ++set_config("MOZ_SYSTEM_HARFBUZZ", depends_if(system_harfbuzz)(lambda _: True)) ++ + + # WebDriver (HTTP / BiDi) + # ============================================================== |