439 440 # This is better than adding EXPORT_ALL_SYMBOLS 441 ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), ) 442 HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\) 443 else ifeq ($(TOOLCHAIN_TYPE), microsoft) 444 HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\) 445 endif 446 447 ifeq ($(call isTargetOs, windows), false) 448 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \ 449 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \ 450 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC 451 endif 452 ifeq ($(call isTargetOs, linux macosx), true) 453 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES 454 endif 455 ifeq ($(call isTargetOs, macosx), true) 456 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT 457 endif 458 ifeq ($(call isTargetOs, macosx), false) 459 LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc 460 endif 461 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later. 462 LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc 463 464 LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS) 465 466 # For use by libfontmanager: 467 ifeq ($(call isTargetOs, windows), true) 468 LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib 469 else 470 LIBHARFBUZZ_LIBS := -lharfbuzz 471 endif 472 473 LIBHARFBUZZ_EXTRA_HEADER_DIRS := \ 474 libharfbuzz/hb-ucdn \ 475 # 476 477 LIBHARFBUZZ_OPTIMIZATION := HIGH 478 479 LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS 480 481 $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \ 482 NAME := harfbuzz, \ | 439 440 # This is better than adding EXPORT_ALL_SYMBOLS 441 ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), ) 442 HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\) 443 else ifeq ($(TOOLCHAIN_TYPE), microsoft) 444 HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\) 445 endif 446 447 ifeq ($(call isTargetOs, windows), false) 448 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \ 449 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \ 450 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC 451 endif 452 ifeq ($(call isTargetOs, linux macosx), true) 453 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES 454 endif 455 ifeq ($(call isTargetOs, macosx), true) 456 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT 457 endif 458 ifeq ($(call isTargetOs, macosx), false) 459 LIBHARFBUZZ_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc 460 endif 461 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later. 462 LIBHARFBUZZ_EXCLUDE_FILES += libharfbuzz/hb-ft.cc 463 464 LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS) 465 466 # For use by libfontmanager: 467 ifeq ($(call isTargetOs, windows), true) 468 LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib 469 else 470 LIBHARFBUZZ_LIBS := -lharfbuzz 471 endif 472 473 LIBHARFBUZZ_EXTRA_HEADER_DIRS := \ 474 libharfbuzz/hb-ucdn \ 475 # 476 477 LIBHARFBUZZ_OPTIMIZATION := HIGH 478 479 LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS 480 481 $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \ 482 NAME := harfbuzz, \ |