@@ -537,84 +537,89 @@ endif
537537
538538###########################################################################
539539
540- HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
540+ ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
541+ LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
542+ else
543+ HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
541544
542- # This is better than adding EXPORT_ALL_SYMBOLS
543- ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
544- HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
545- else ifeq ($(TOOLCHAIN_TYPE), microsoft)
546- HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
547- endif
545+ # This is better than adding EXPORT_ALL_SYMBOLS
546+ ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
547+ HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
548+ else ifeq ($(TOOLCHAIN_TYPE), microsoft)
549+ HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
550+ endif
548551
549- ifeq ($(call isTargetOs, windows), false)
550- HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
552+ ifeq ($(call isTargetOs, windows), false)
553+ HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
551554 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
552555 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
553- endif
554- ifeq ($(call isTargetOs, linux macosx ), true)
555- HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
556- endif
557- ifeq ($(call isTargetOs, solaris ), true)
558- HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
559- endif
560- ifeq ($(call isTargetOs, macosx), true)
561- HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
562- endif
563- ifeq ($(call isTargetOs, macosx), false)
564- LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
565- endif
566- # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
567- LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
556+ endif
557+ ifeq ($(call isTargetOs, solaris ), true)
558+ HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
559+ endif
560+ ifeq ($(call isTargetOs, linux macosx ), true)
561+ HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
562+ endif
563+ ifeq ($(call isTargetOs, macosx), true)
564+ HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
565+ endif
566+ ifeq ($(call isTargetOs, macosx), false)
567+ LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
568+ endif
569+ # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
570+ LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
568571
569- LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
572+ LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
570573
571- # For use by libfontmanager:
572- ifeq ($(call isTargetOs, windows), true)
573- LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
574- else
575- LIBHARFBUZZ_LIBS := -lharfbuzz
576- endif
574+ # For use by libfontmanager:
575+ ifeq ($(call isTargetOs, windows), true)
576+ LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
577+ else
578+ LIBHARFBUZZ_LIBS := -lharfbuzz
579+ endif
577580
578- LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
581+ LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
579582 libharfbuzz/hb-ucdn \
580583 #
581584
582- LIBHARFBUZZ_OPTIMIZATION := HIGH
583-
584- LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
585-
586- $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
587- NAME := harfbuzz, \
588- EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
589- TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
590- CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
591- CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
592- OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
593- CFLAGS_windows = -DCC_NOEX, \
594- EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
595- WARNINGS_AS_ERRORS_xlc := false, \
596- DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
597- DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
585+ LIBHARFBUZZ_OPTIMIZATION := HIGH
586+
587+ LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
588+
589+ $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
590+ NAME := harfbuzz, \
591+ EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
592+ TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
593+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
594+ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
595+ OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
596+ CFLAGS_windows = -DCC_NOEX, \
597+ EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
598+ WARNINGS_AS_ERRORS_xlc := false, \
599+ DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
600+ DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
598601 maybe-uninitialized class-memaccess, \
599- DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
602+ DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
600603 tautological-constant-out-of-range-compare int-to-pointer-cast \
601604 undef missing-field-initializers, \
602- DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
603- LDFLAGS := $(LDFLAGS_JDKLIB) \
605+ DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
606+ LDFLAGS := $(LDFLAGS_JDKLIB) \
604607 $(call SET_SHARED_LIBRARY_ORIGIN), \
605- LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
606- LDFLAGS_aix := -Wl$(COMMA)-berok, \
607- LIBS := $(BUILD_LIBHARFBUZZ), \
608- LIBS_unix := $(LIBM) $(LIBCXX), \
609- LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
610- LIBS_windows := user32.lib, \
611- ))
608+ LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
609+ LDFLAGS_aix := -Wl$(COMMA)-berok, \
610+ LIBS := $(BUILD_LIBHARFBUZZ), \
611+ LIBS_unix := $(LIBM) $(LIBCXX), \
612+ LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
613+ LIBS_windows := user32.lib, \
614+ ))
612615
613- ifeq ($(FREETYPE_TO_USE), bundled)
614- $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
615- endif
616+ ifeq ($(FREETYPE_TO_USE), bundled)
617+ $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
618+ endif
619+
620+ TARGETS += $(BUILD_LIBHARFBUZZ)
616621
617- TARGETS += $(BUILD_LIBHARFBUZZ)
622+ endif
618623
619624###########################################################################
620625
@@ -691,7 +696,11 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
691696 $(WIN_AWT_LIB), \
692697))
693698
694- $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) $(BUILD_LIBHARFBUZZ)
699+ $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
700+
701+ ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
702+ $(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
703+ endif
695704
696705ifeq ($(call isTargetOs, macosx), true)
697706 $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
0 commit comments