--- Waterfox-56.2.4/config/Makefile.in +++ Waterfox-56.2.4/config/Makefile.in @@ -41,6 +41,7 @@ $(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \ -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \ -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ + -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ -DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \ -DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \ -DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \ --- Waterfox-56.2.4/config/system-headers +++ Waterfox-56.2.4/config/system-headers @@ -1274,6 +1274,11 @@ libsn/sn-monitor.h libsn/sn-util.h #endif +#if MOZ_SYSTEM_HARFBUZZ==1 +harfbuzz/hb-glib.h +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif #if MOZ_SYSTEM_HUNSPELL==1 hunspell.hxx #endif --- Waterfox-56.2.4/dom/base/moz.build +++ Waterfox-56.2.4/dom/base/moz.build @@ -476,6 +476,9 @@ if CONFIG['MOZ_X11']: CXXFLAGS += CONFIG['TK_CFLAGS'] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + GENERATED_FILES += [ 'PropertyUseCounterMap.inc', 'UseCounterList.h', --- Waterfox-56.2.4/gfx/harfbuzz/README-mozilla +++ Waterfox-56.2.4/gfx/harfbuzz/README-mozilla @@ -19,3 +19,8 @@ If the collection of source files changes, manual updates to moz.build may be needed, as we don't use the upstream makefiles. + +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. --- Waterfox-56.2.4/gfx/moz.build +++ Waterfox-56.2.4/gfx/moz.build @@ -10,6 +10,9 @@ if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] +if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: + DIRS += ['harfbuzz/src'] + DIRS += [ '2d', 'ycbcr', @@ -19,7 +22,6 @@ 'gl', 'layers', 'graphite2/src', - 'harfbuzz/src', 'ots/src', 'thebes', 'ipc', --- Waterfox-56.2.4/gfx/skia/generate_mozbuild.py +++ Waterfox-56.2.4/gfx/skia/generate_mozbuild.py @@ -148,6 +148,9 @@ '-Wno-unused-private-field', ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] --- Waterfox-56.2.4/gfx/skia/moz.build +++ Waterfox-56.2.4/gfx/skia/moz.build @@ -823,6 +823,9 @@ '-Wno-unused-private-field', ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] --- Waterfox-56.2.4/gfx/thebes/moz.build +++ Waterfox-56.2.4/gfx/thebes/moz.build @@ -273,6 +273,9 @@ DEFINES['GRAPHITE2_STATIC'] = True +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['CLANG_CXX']: # Suppress warnings from Skia header files. SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough'] --- Waterfox-56.2.4/intl/unicharutil/util/moz.build +++ Waterfox-56.2.4/intl/unicharutil/util/moz.build @@ -29,4 +29,7 @@ 'ICUUtils.cpp', ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + FINAL_LIBRARY = 'xul' --- Waterfox-56.2.4/netwerk/dns/moz.build +++ Waterfox-56.2.4/netwerk/dns/moz.build @@ -69,6 +69,9 @@ '/netwerk/base', ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['ENABLE_INTL_API']: DEFINES['IDNA2008'] = True USE_LIBS += ['icu'] --- Waterfox-56.2.4/toolkit/library/moz.build +++ Waterfox-56.2.4/toolkit/library/moz.build @@ -212,6 +212,9 @@ if CONFIG['MOZ_SYSTEM_PNG']: OS_LIBS += CONFIG['MOZ_PNG_LIBS'] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] + if CONFIG['MOZ_SYSTEM_WEBP']: OS_LIBS += CONFIG['MOZ_WEBP_LIBS'] --- Waterfox-56.2.4/toolkit/moz.configure +++ Waterfox-56.2.4/toolkit/moz.configure @@ -314,6 +314,16 @@ add_old_configure_assignment('_HAVE_FREETYPE2', depends_if(freetype2_info)(lambda _: True)) +# HarfBuzz +# ============================================================== +option('--with-system-harfbuzz', + help="Use system harfbuzz (located with pkgconfig)") + +system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.2', + when='--with-system-harfbuzz') + +set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) + # Apple platform decoder support # ============================================================== @depends(toolkit)