Skip to content

Commit b1ff2bd

Browse files
committed
8249821: Separate libharfbuzz from libfontmanager
Reviewed-by: erikj
1 parent 3e641b7 commit b1ff2bd

199 files changed

Lines changed: 67 additions & 22 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

make/modules/java.desktop/lib/Awt2dLibraries.gmk

Lines changed: 67 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -432,10 +432,15 @@ endif
432432

433433
###########################################################################
434434

435-
#### Begin harfbuzz configuration
436-
437435
HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
438436

437+
# This is better than adding EXPORT_ALL_SYMBOLS
438+
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
439+
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
440+
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
441+
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
442+
endif
443+
439444
ifeq ($(call isTargetOs, windows), false)
440445
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
441446
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
@@ -448,27 +453,74 @@ ifeq ($(call isTargetOs, macosx), true)
448453
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
449454
endif
450455
ifeq ($(call isTargetOs, macosx), false)
451-
LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
456+
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
452457
endif
453458
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
454-
LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
459+
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
455460

456-
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
461+
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
462+
463+
# For use by libfontmanager:
464+
ifeq ($(call isTargetOs, windows), true)
465+
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
466+
else
467+
LIBHARFBUZZ_LIBS := -lharfbuzz
468+
endif
469+
470+
LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
471+
libharfbuzz/hb-ucdn \
472+
#
457473

458-
#### End harfbuzz configuration
474+
LIBHARFBUZZ_OPTIMIZATION := HIGH
475+
476+
LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
477+
478+
$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
479+
NAME := harfbuzz, \
480+
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
481+
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
482+
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
483+
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
484+
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
485+
CFLAGS_windows = -DCC_NOEX, \
486+
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
487+
WARNINGS_AS_ERRORS_xlc := false, \
488+
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
489+
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
490+
maybe-uninitialized class-memaccess, \
491+
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
492+
tautological-constant-out-of-range-compare int-to-pointer-cast \
493+
undef missing-field-initializers, \
494+
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
495+
LDFLAGS := $(LDFLAGS_JDKLIB) \
496+
$(call SET_SHARED_LIBRARY_ORIGIN), \
497+
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
498+
LDFLAGS_aix := -Wl$(COMMA)-berok, \
499+
LIBS := $(BUILD_LIBHARFBUZZ), \
500+
LIBS_unix := $(LIBM) $(LIBCXX), \
501+
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
502+
LIBS_windows := user32.lib, \
503+
))
504+
505+
ifeq ($(FREETYPE_TO_USE), bundled)
506+
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
507+
endif
508+
509+
TARGETS += $(BUILD_LIBHARFBUZZ)
510+
511+
###########################################################################
459512

460513
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
461-
libfontmanager/harfbuzz \
462-
libfontmanager/harfbuzz/hb-ucdn \
514+
libharfbuzz \
463515
common/awt \
464516
common/font \
465517
libawt/java2d \
466518
libawt/java2d/pipe \
467519
libawt/java2d/loops \
468520
#
469521

470-
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
471-
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
522+
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
523+
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
472524

473525
LIBFONTMANAGER_OPTIMIZATION := HIGH
474526

@@ -509,29 +561,22 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
509561
CFLAGS_windows = -DCC_NOEX, \
510562
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
511563
WARNINGS_AS_ERRORS_xlc := false, \
512-
DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
513-
type-limits missing-field-initializers implicit-fallthrough \
514-
strict-aliasing undef unused-function, \
515-
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
516-
maybe-uninitialized class-memaccess, \
517-
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
518-
tautological-constant-out-of-range-compare int-to-pointer-cast \
519-
sign-compare undef missing-field-initializers, \
520-
DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101 4068 4805 4138, \
564+
DISABLED_WARNINGS_gcc := sign-compare unused-function, \
565+
DISABLED_WARNINGS_clang := sign-compare, \
566+
DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996, \
521567
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
522568
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
523569
$(call SET_SHARED_LIBRARY_ORIGIN), \
524570
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
525571
LDFLAGS_aix := -Wl$(COMMA)-berok, \
526572
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
527573
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
528-
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation \
529-
-framework CoreGraphics, \
574+
LIBS_macosx := -lawt_lwawt, \
530575
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
531576
$(WIN_AWT_LIB), \
532577
))
533578

534-
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
579+
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) $(BUILD_LIBHARFBUZZ)
535580

536581
ifeq ($(call isTargetOs, macosx), true)
537582
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-fdsc-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-fdsc-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-ankr-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-ankr-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-bsln-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-bsln-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-common.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-common.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-feat-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-feat-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-just-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-just-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-kerx-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-kerx-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-lcar-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-lcar-table.hh

File renamed without changes.

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-morx-table.hh renamed to src/java.desktop/share/native/libharfbuzz/hb-aat-layout-morx-table.hh

File renamed without changes.

0 commit comments

Comments
 (0)