@@ -537,22 +537,18 @@ endif
537
537
538
538
###########################################################################
539
539
540
+
540
541
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
541
- LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
542
+ LIBFONTMANAGER_EXTRA_SRC =
543
+ BUILD_LIBFONTMANAGER_FONTLIB += $(HARFBUZZ_LIBS)
542
544
else
545
+ LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
543
546
HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
544
547
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
551
-
552
548
ifeq ($(call isTargetOs, windows), false)
553
549
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
554
- -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
555
- -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
550
+ -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
551
+ -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
556
552
endif
557
553
ifeq ($(call isTargetOs, solaris), true)
558
554
HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
@@ -563,79 +559,53 @@ else
563
559
ifeq ($(call isTargetOs, macosx), true)
564
560
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
565
561
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
571
562
572
- LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
573
-
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
563
+ # Early re-canonizing has to be disabled to workaround an internal XlC compiler error
564
+ # when building libharfbuzz
565
+ ifeq ($(call isTargetOs, aix), true)
566
+ HARFBUZZ_CFLAGS += -qdebug=necan
579
567
endif
580
568
581
- LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
582
- libharfbuzz/hb-ucdn \
583
- #
584
-
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 \
601
- maybe-uninitialized class-memaccess, \
602
- DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
603
- tautological-constant-out-of-range-compare int-to-pointer-cast \
604
- undef missing-field-initializers, \
605
- DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
606
- LDFLAGS := $(LDFLAGS_JDKLIB) \
607
- $(call SET_SHARED_LIBRARY_ORIGIN), \
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
- ))
615
-
616
- ifeq ($(FREETYPE_TO_USE), bundled)
617
- $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
569
+ ifeq ($(call isTargetOs, macosx), false)
570
+ LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
618
571
endif
572
+ # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
573
+ LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
574
+
575
+ HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
576
+ HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
577
+ maybe-uninitialized class-memaccess
578
+ HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
579
+ tautological-constant-out-of-range-compare int-to-pointer-cast \
580
+ undef missing-field-initializers
581
+ HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
582
+ HARFBUZZ_DISABLED_WARNINGS_C_solstudio := \
583
+ E_INTEGER_OVERFLOW_DETECTED \
584
+ E_ARG_INCOMPATIBLE_WITH_ARG_L \
585
+ E_ENUM_VAL_OVERFLOWS_INT_MAX
586
+ HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio := \
587
+ truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
588
+ hidevf w_novirtualdescr arrowrtn2 unknownpragma
619
589
620
- TARGETS += $(BUILD_LIBHARFBUZZ )
590
+ LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS )
621
591
622
592
endif
623
593
624
- ###########################################################################
625
594
626
595
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
627
596
libharfbuzz \
597
+ libharfbuzz/hb-ucdn \
628
598
common/awt \
629
599
common/font \
630
600
libawt/java2d \
631
601
libawt/java2d/pipe \
632
602
libawt/java2d/loops \
633
603
#
634
604
635
- LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
636
- BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
605
+ LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
606
+ BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
637
607
638
- LIBFONTMANAGER_OPTIMIZATION := HIGH
608
+ LIBFONTMANAGER_OPTIMIZATION := HIGHEST
639
609
640
610
ifeq ($(call isTargetOs, windows), true)
641
611
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -673,35 +643,28 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
673
643
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
674
644
CFLAGS_windows = -DCC_NOEX, \
675
645
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
646
+ EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
676
647
WARNINGS_AS_ERRORS_xlc := false, \
677
- DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast, \
678
- DISABLED_WARNINGS_clang := sign-compare, \
679
- DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996, \
680
- DISABLED_WARNINGS_C_solstudio = \
681
- E_INTEGER_OVERFLOW_DETECTED \
682
- E_ARG_INCOMPATIBLE_WITH_ARG_L \
683
- E_ENUM_VAL_OVERFLOWS_INT_MAX, \
684
- DISABLED_WARNINGS_CXX_solstudio := \
685
- truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
686
- hidevf w_novirtualdescr arrowrtn2 refmemnoconstr_aggr unknownpragma, \
648
+ DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
649
+ DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
650
+ DISABLED_WARNINGS_clang := sign-compare $(HARFBUZZ_DISABLED_WARNINGS_clang), \
651
+ DISABLED_WARNINGS_C_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_C_solstudio), \
652
+ DISABLED_WARNINGS_CXX_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio), \
653
+ DISABLED_WARNINGS_microsoft := 4018 4996 $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
687
654
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
688
655
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
689
656
$(call SET_SHARED_LIBRARY_ORIGIN), \
690
657
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
691
658
LDFLAGS_aix := -Wl$(COMMA)-berok, \
692
659
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
693
660
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
694
- LIBS_macosx := -lawt_lwawt, \
661
+ LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics , \
695
662
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
696
663
$(WIN_AWT_LIB), \
697
664
))
698
665
699
666
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
700
667
701
- ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
702
- $(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
703
- endif
704
-
705
668
ifeq ($(call isTargetOs, macosx), true)
706
669
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
707
670
endif
0 commit comments