@@ -434,81 +434,86 @@ endif
434434
435435###########################################################################
436436
437- HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
437+ ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
438+ LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
439+ else
440+ HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
438441
439- # This is better than adding EXPORT_ALL_SYMBOLS
440- ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
441- HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
442- else ifeq ($(TOOLCHAIN_TYPE), microsoft)
443- HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
444- endif
442+ # This is better than adding EXPORT_ALL_SYMBOLS
443+ ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
444+ HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
445+ else ifeq ($(TOOLCHAIN_TYPE), microsoft)
446+ HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
447+ endif
445448
446- ifeq ($(call isTargetOs, windows), false)
447- HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
449+ ifeq ($(call isTargetOs, windows), false)
450+ HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
448451 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
449452 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
450- endif
451- ifeq ($(call isTargetOs, linux macosx), true)
452- HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
453- endif
454- ifeq ($(call isTargetOs, macosx), true)
455- HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
456- endif
457- ifeq ($(call isTargetOs, macosx), false)
458- LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
459- endif
460- # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
461- LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
453+ endif
454+ ifeq ($(call isTargetOs, linux macosx), true)
455+ HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
456+ endif
457+ ifeq ($(call isTargetOs, macosx), true)
458+ HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
459+ endif
460+ ifeq ($(call isTargetOs, macosx), false)
461+ LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
462+ endif
463+ # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
464+ LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
462465
463- LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
466+ LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
464467
465- # For use by libfontmanager:
466- ifeq ($(call isTargetOs, windows), true)
467- LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
468- else
469- LIBHARFBUZZ_LIBS := -lharfbuzz
470- endif
468+ # For use by libfontmanager:
469+ ifeq ($(call isTargetOs, windows), true)
470+ LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
471+ else
472+ LIBHARFBUZZ_LIBS := -lharfbuzz
473+ endif
471474
472- LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
475+ LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
473476 libharfbuzz/hb-ucdn \
474477 #
475478
476- LIBHARFBUZZ_OPTIMIZATION := HIGH
477-
478- LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
479-
480- $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
481- NAME := harfbuzz, \
482- EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
483- TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
484- CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
485- CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
486- OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
487- CFLAGS_windows = -DCC_NOEX, \
488- EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
489- WARNINGS_AS_ERRORS_xlc := false, \
490- DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
491- DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
479+ LIBHARFBUZZ_OPTIMIZATION := HIGH
480+
481+ LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
482+
483+ $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
484+ NAME := harfbuzz, \
485+ EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
486+ TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
487+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
488+ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
489+ OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
490+ CFLAGS_windows = -DCC_NOEX, \
491+ EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
492+ WARNINGS_AS_ERRORS_xlc := false, \
493+ DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
494+ DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
492495 maybe-uninitialized class-memaccess, \
493- DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
496+ DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
494497 tautological-constant-out-of-range-compare int-to-pointer-cast \
495498 undef missing-field-initializers, \
496- DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
497- LDFLAGS := $(LDFLAGS_JDKLIB) \
499+ DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
500+ LDFLAGS := $(LDFLAGS_JDKLIB) \
498501 $(call SET_SHARED_LIBRARY_ORIGIN), \
499- LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
500- LDFLAGS_aix := -Wl$(COMMA)-berok, \
501- LIBS := $(BUILD_LIBHARFBUZZ), \
502- LIBS_unix := $(LIBM) $(LIBCXX), \
503- LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
504- LIBS_windows := user32.lib, \
505- ))
502+ LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
503+ LDFLAGS_aix := -Wl$(COMMA)-berok, \
504+ LIBS := $(BUILD_LIBHARFBUZZ), \
505+ LIBS_unix := $(LIBM) $(LIBCXX), \
506+ LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
507+ LIBS_windows := user32.lib, \
508+ ))
506509
507- ifeq ($(FREETYPE_TO_USE), bundled)
508- $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
509- endif
510+ ifeq ($(FREETYPE_TO_USE), bundled)
511+ $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
512+ endif
510513
511- TARGETS += $(BUILD_LIBHARFBUZZ)
514+ TARGETS += $(BUILD_LIBHARFBUZZ)
515+
516+ endif
512517
513518###########################################################################
514519
@@ -578,7 +583,11 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
578583 $(WIN_AWT_LIB), \
579584))
580585
581- $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) $(BUILD_LIBHARFBUZZ)
586+ $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
587+
588+ ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
589+ $(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
590+ endif
582591
583592ifeq ($(call isTargetOs, macosx), true)
584593 $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
0 commit comments