@@ -535,26 +535,13 @@ endif
535535
536536###########################################################################
537537
538+
538539ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
539- LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
540+ LIBFONTMANAGER_EXTRA_SRC =
541+ BUILD_LIBFONTMANAGER_FONTLIB += $(HARFBUZZ_LIBS)
540542else
543+ LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
541544 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
542- # This is better than adding EXPORT_ALL_SYMBOLS
543- ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang solstudio), )
544- HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
545- else ifeq ($(TOOLCHAIN_TYPE), microsoft)
546- HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
547- endif
548-
549- LIBHARFBUZZ_LDFLAGS := $(LDFLAGS_JDKLIB) \
550- $(call SET_SHARED_LIBRARY_ORIGIN)
551- ifeq ($(TOOLCHAIN_TYPE), gcc)
552- ifeq ($(CC_VERSION_NUMBER), 4.4.7)
553- LIBHARFBUZZ_LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
554- $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) \
555- $(call SET_SHARED_LIBRARY_ORIGIN)
556- endif
557- endif
558545
559546 ifneq ($(OPENJDK_TARGET_OS), windows)
560547 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
@@ -571,84 +558,45 @@ else
571558 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
572559 endif
573560 ifneq ($(OPENJDK_TARGET_OS), macosx)
574- LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz /hb-coretext.cc
561+ LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz /hb-coretext.cc
575562 endif
576563 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
577- LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
578-
579- LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
580-
581- # For use by libfontmanager:
582- ifeq ($(OPENJDK_TARGET_OS), windows)
583- LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
584- else
585- LIBHARFBUZZ_LIBS := -lharfbuzz
586- endif
587-
588- LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
589- libharfbuzz/hb-ucdn \
590- #
591-
592- LIBHARFBUZZ_OPTIMIZATION := HIGH
593-
594- LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
595-
596- $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
597- NAME := harfbuzz, \
598- EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
599- TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
600- CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
601- CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
602- OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
603- CFLAGS_windows = -DCC_NOEX, \
604- EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
605- WARNINGS_AS_ERRORS_xlc := false, \
606- DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
607- DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
608- maybe-uninitialized class-memaccess, \
609- DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
610- tautological-constant-out-of-range-compare int-to-pointer-cast \
611- undef missing-field-initializers, \
612- DISABLED_WARNINGS_C_solstudio := \
613- E_INTEGER_OVERFLOW_DETECTED \
614- E_ARG_INCOMPATIBLE_WITH_ARG_L \
615- E_ENUM_VAL_OVERFLOWS_INT_MAX, \
616- DISABLED_WARNINGS_CXX_solstudio := \
617- truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
618- hidevf w_novirtualdescr arrowrtn2 unknownpragma, \
619- DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
620- LDFLAGS := $(LIBHARFBUZZ_LDFLAGS), \
621- LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
622- LDFLAGS_aix := -Wl$(COMMA)-berok, \
623- LIBS := $(BUILD_LIBHARFBUZZ), \
624- LIBS_unix := $(LIBM) $(LIBCXX), \
625- LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
626- LIBS_windows := user32.lib, \
627- ))
628-
629- ifeq ($(FREETYPE_TO_USE), bundled)
630- $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
631- endif
564+ LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
565+
566+ HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
567+ HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
568+ maybe-uninitialized class-memaccess
569+ HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
570+ tautological-constant-out-of-range-compare int-to-pointer-cast \
571+ undef missing-field-initializers
572+ HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
573+ HARFBUZZ_DISABLED_WARNINGS_C_solstudio := \
574+ E_INTEGER_OVERFLOW_DETECTED \
575+ E_ARG_INCOMPATIBLE_WITH_ARG_L \
576+ E_ENUM_VAL_OVERFLOWS_INT_MAX
577+ HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio := \
578+ truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
579+ hidevf w_novirtualdescr arrowrtn2 unknownpragma
632580
633- TARGETS += $(BUILD_LIBHARFBUZZ )
581+ LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS )
634582
635583endif
636584
637- ###########################################################################
638585
639586LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
640587 libharfbuzz \
588+ libharfbuzz/hb-ucdn \
641589 common/awt \
642590 common/font \
643591 libawt/java2d \
644592 libawt/java2d/pipe \
645593 libawt/java2d/loops \
646594 #
647595
648- LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
649- BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
596+ LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
597+ BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
650598
651- LIBFONTMANAGER_OPTIMIZATION := HIGH
599+ LIBFONTMANAGER_OPTIMIZATION := HIGHEST
652600
653601ifeq ($(OPENJDK_TARGET_OS), windows)
654602 LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -686,35 +634,28 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
686634 OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
687635 CFLAGS_windows = -DCC_NOEX, \
688636 EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
637+ EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
689638 WARNINGS_AS_ERRORS_xlc := false, \
690- DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast, \
691- DISABLED_WARNINGS_clang := sign-compare, \
692- DISABLED_WARNINGS_C_solstudio := \
693- E_INTEGER_OVERFLOW_DETECTED \
694- E_ARG_INCOMPATIBLE_WITH_ARG_L \
695- E_ENUM_VAL_OVERFLOWS_INT_MAX, \
696- DISABLED_WARNINGS_CXX_solstudio := \
697- truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
698- hidevf w_novirtualdescr arrowrtn2 unknownpragma, \
699- DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996 4996 4146 4334 4819 4101 4068 4805 4138, \
639+ DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
640+ DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
641+ DISABLED_WARNINGS_clang := sign-compare $(HARFBUZZ_DISABLED_WARNINGS_clang), \
642+ DISABLED_WARNINGS_C_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_C_solstudio), \
643+ DISABLED_WARNINGS_CXX_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio), \
644+ DISABLED_WARNINGS_microsoft := 4018 4996 $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
700645 LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
701646 $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
702647 $(call SET_SHARED_LIBRARY_ORIGIN), \
703648 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
704649 LDFLAGS_aix := -Wl$(COMMA)-berok, \
705650 LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
706651 LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
707- LIBS_macosx := -lawt_lwawt, \
652+ LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics , \
708653 LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
709654 $(WIN_AWT_LIB), \
710655))
711656
712657$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
713658
714- ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
715- $(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
716- endif
717-
718659ifeq ($(OPENJDK_TARGET_OS), macosx)
719660 $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
720661endif
0 commit comments