From a7e58bf253d08b896df3bbf247bbbaae718e426d Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Tue, 25 Feb 2014 15:33:43 +0200 Subject: Build bundled HarfBuzz-NG outside QtGui Being a part of QtGui, HarfBuzz-NG breaks build with -Werror. Instead of disabling a particular warnings-as-errors, build a prefixed static library and make it a link-time dependency. Change-Id: Id0be1f0e0034092d50f83cd364d5c65940fee869 Reviewed-by: Lars Knoll --- src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro | 126 +++++++++++++++++++++++++++++++ src/3rdparty/harfbuzz.pri | 120 ----------------------------- src/3rdparty/harfbuzzng.pri | 6 ++ src/gui/text/text.pri | 2 +- src/src.pro | 10 ++- 5 files changed, 142 insertions(+), 122 deletions(-) create mode 100644 src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro delete mode 100644 src/3rdparty/harfbuzz.pri create mode 100644 src/3rdparty/harfbuzzng.pri diff --git a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro new file mode 100644 index 0000000000..d65520927b --- /dev/null +++ b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro @@ -0,0 +1,126 @@ +TARGET = qtharfbuzzng +TEMPLATE = lib + +CONFIG += \ + static \ + hide_symbols \ + exceptions_off rtti_off +CONFIG -= qt + +DESTDIR = $$QT_BUILD_TREE/lib + +DEFINES += HAVE_CONFIG_H +HEADERS += $$PWD/src/config.h + +INCLUDEPATH += $$PWD/include + +SOURCES += \ + $$PWD/src/hb-blob.cc \ + $$PWD/src/hb-buffer.cc \ + $$PWD/src/hb-buffer-serialize.cc \ + $$PWD/src/hb-common.cc \ + $$PWD/src/hb-face.cc \ + $$PWD/src/hb-font.cc \ + $$PWD/src/hb-ot-tag.cc \ + $$PWD/src/hb-set.cc \ + $$PWD/src/hb-shape.cc \ + $$PWD/src/hb-shape-plan.cc \ + $$PWD/src/hb-shaper.cc \ + $$PWD/src/hb-unicode.cc \ + $$PWD/src/hb-warning.cc + +HEADERS += \ + $$PWD/src/hb-atomic-private.hh \ + $$PWD/src/hb-buffer-private.hh \ + $$PWD/src/hb-buffer-deserialize-json.hh \ + $$PWD/src/hb-buffer-deserialize-text.hh \ + $$PWD/src/hb-cache-private.hh \ + $$PWD/src/hb-face-private.hh \ + $$PWD/src/hb-font-private.hh \ + $$PWD/src/hb-mutex-private.hh \ + $$PWD/src/hb-object-private.hh \ + $$PWD/src/hb-open-file-private.hh \ + $$PWD/src/hb-open-type-private.hh \ + $$PWD/src/hb-ot-head-table.hh \ + $$PWD/src/hb-ot-hhea-table.hh \ + $$PWD/src/hb-ot-hmtx-table.hh \ + $$PWD/src/hb-ot-maxp-table.hh \ + $$PWD/src/hb-ot-name-table.hh \ + $$PWD/src/hb-private.hh \ + $$PWD/src/hb-set-private.hh \ + $$PWD/src/hb-shape-plan-private.hh \ + $$PWD/src/hb-shaper-impl-private.hh \ + $$PWD/src/hb-shaper-list.hh \ + $$PWD/src/hb-shaper-private.hh \ + $$PWD/src/hb-unicode-private.hh \ + $$PWD/src/hb-utf-private.hh + +HEADERS += \ + $$PWD/src/hb.h \ + $$PWD/src/hb-blob.h \ + $$PWD/src/hb-buffer.h \ + $$PWD/src/hb-common.h \ + $$PWD/src/hb-face.h \ + $$PWD/src/hb-font.h \ + $$PWD/src/hb-set.h \ + $$PWD/src/hb-shape.h \ + $$PWD/src/hb-shape-plan.h \ + $$PWD/src/hb-unicode.h \ + $$PWD/src/hb-version.h + +# Open Type +SOURCES += \ + $$PWD/src/hb-ot-layout.cc \ + $$PWD/src/hb-ot-map.cc \ + $$PWD/src/hb-ot-shape.cc \ + $$PWD/src/hb-ot-shape-complex-arabic.cc \ + $$PWD/src/hb-ot-shape-complex-default.cc \ + $$PWD/src/hb-ot-shape-complex-hangul.cc \ + $$PWD/src/hb-ot-shape-complex-hebrew.cc \ + $$PWD/src/hb-ot-shape-complex-indic.cc \ + $$PWD/src/hb-ot-shape-complex-indic-table.cc \ + $$PWD/src/hb-ot-shape-complex-myanmar.cc \ + $$PWD/src/hb-ot-shape-complex-sea.cc \ + $$PWD/src/hb-ot-shape-complex-thai.cc \ + $$PWD/src/hb-ot-shape-complex-tibetan.cc \ + $$PWD/src/hb-ot-shape-fallback.cc \ + $$PWD/src/hb-ot-shape-normalize.cc + +HEADERS += \ + $$PWD/src/hb-ot-layout-common-private.hh \ + $$PWD/src/hb-ot-layout-gdef-table.hh \ + $$PWD/src/hb-ot-layout-gpos-table.hh \ + $$PWD/src/hb-ot-layout-gsubgpos-private.hh \ + $$PWD/src/hb-ot-layout-gsub-table.hh \ + $$PWD/src/hb-ot-layout-jstf-table.hh \ + $$PWD/src/hb-ot-layout-private.hh \ + $$PWD/src/hb-ot-map-private.hh \ + $$PWD/src/hb-ot-shape-complex-arabic-fallback.hh \ + $$PWD/src/hb-ot-shape-complex-arabic-table.hh \ + $$PWD/src/hb-ot-shape-complex-indic-machine.hh \ + $$PWD/src/hb-ot-shape-complex-indic-private.hh \ + $$PWD/src/hb-ot-shape-complex-myanmar-machine.hh \ + $$PWD/src/hb-ot-shape-complex-private.hh \ + $$PWD/src/hb-ot-shape-complex-sea-machine.hh \ + $$PWD/src/hb-ot-shape-fallback-private.hh \ + $$PWD/src/hb-ot-shape-normalize-private.hh \ + $$PWD/src/hb-ot-shape-private.hh + +HEADERS += \ + $$PWD/src/hb-ot.h \ + $$PWD/src/hb-ot-layout.h \ + $$PWD/src/hb-ot-shape.h \ + $$PWD/src/hb-ot-tag.h + +mac { + # Apple Advanced Typography + DEFINES += HAVE_CORETEXT + + SOURCES += \ + $$PWD/src/hb-coretext.cc + + HEADERS += \ + $$PWD/src/hb-coretext.h +} + +TARGET = $$TARGET$$qtPlatformTargetSuffix() diff --git a/src/3rdparty/harfbuzz.pri b/src/3rdparty/harfbuzz.pri deleted file mode 100644 index 1b7f7b95e1..0000000000 --- a/src/3rdparty/harfbuzz.pri +++ /dev/null @@ -1,120 +0,0 @@ -contains(QT_CONFIG, harfbuzz) { - QT_HARFBUZZ_DIR = $$QT_SOURCE_TREE/src/3rdparty/harfbuzz-ng - - INCLUDEPATH += $$QT_HARFBUZZ_DIR/include - - SOURCES += \ - $$QT_HARFBUZZ_DIR/src/hb-blob.cc \ - $$QT_HARFBUZZ_DIR/src/hb-buffer.cc \ - $$QT_HARFBUZZ_DIR/src/hb-buffer-serialize.cc \ - $$QT_HARFBUZZ_DIR/src/hb-common.cc \ - $$QT_HARFBUZZ_DIR/src/hb-face.cc \ - $$QT_HARFBUZZ_DIR/src/hb-font.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-tag.cc \ - $$QT_HARFBUZZ_DIR/src/hb-set.cc \ - $$QT_HARFBUZZ_DIR/src/hb-shape.cc \ - $$QT_HARFBUZZ_DIR/src/hb-shape-plan.cc \ - $$QT_HARFBUZZ_DIR/src/hb-shaper.cc \ - $$QT_HARFBUZZ_DIR/src/hb-unicode.cc \ - $$QT_HARFBUZZ_DIR/src/hb-warning.cc - - HEADERS += \ - $$QT_HARFBUZZ_DIR/src/hb-atomic-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-buffer-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-buffer-deserialize-json.hh \ - $$QT_HARFBUZZ_DIR/src/hb-buffer-deserialize-text.hh \ - $$QT_HARFBUZZ_DIR/src/hb-cache-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-face-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-font-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-mutex-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-object-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-open-file-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-open-type-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-head-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-hhea-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-hmtx-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-maxp-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-name-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-set-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-shape-plan-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-shaper-impl-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-shaper-list.hh \ - $$QT_HARFBUZZ_DIR/src/hb-shaper-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-unicode-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-utf-private.hh - - HEADERS += \ - $$QT_HARFBUZZ_DIR/src/hb.h \ - $$QT_HARFBUZZ_DIR/src/hb-blob.h \ - $$QT_HARFBUZZ_DIR/src/hb-buffer.h \ - $$QT_HARFBUZZ_DIR/src/hb-common.h \ - $$QT_HARFBUZZ_DIR/src/hb-face.h \ - $$QT_HARFBUZZ_DIR/src/hb-font.h \ - $$QT_HARFBUZZ_DIR/src/hb-set.h \ - $$QT_HARFBUZZ_DIR/src/hb-shape.h \ - $$QT_HARFBUZZ_DIR/src/hb-shape-plan.h \ - $$QT_HARFBUZZ_DIR/src/hb-unicode.h \ - $$QT_HARFBUZZ_DIR/src/hb-version.h - - # Open Type - SOURCES += \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-map.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-arabic.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-default.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-hangul.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-hebrew.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-indic.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-indic-table.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-myanmar.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-sea.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-thai.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-tibetan.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-fallback.cc \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-normalize.cc - - HEADERS += \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-common-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-gdef-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-gpos-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-gsubgpos-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-gsub-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-jstf-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-map-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-arabic-fallback.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-arabic-table.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-indic-machine.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-indic-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-myanmar-machine.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-complex-sea-machine.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-fallback-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-normalize-private.hh \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape-private.hh - - HEADERS += \ - $$QT_HARFBUZZ_DIR/src/hb-ot.h \ - $$QT_HARFBUZZ_DIR/src/hb-ot-layout.h \ - $$QT_HARFBUZZ_DIR/src/hb-ot-shape.h \ - $$QT_HARFBUZZ_DIR/src/hb-ot-tag.h - - mac { - # Apple Advanced Typography - SOURCES += \ - $$QT_HARFBUZZ_DIR/src/hb-coretext.cc - - HEADERS += \ - $$QT_HARFBUZZ_DIR/src/hb-coretext.h - - DEFINES += HAVE_CORETEXT - } - - DEFINES += HAVE_CONFIG_H - - TR_EXCLUDE += $$QT_HARFBUZZ_DIR/* -} else:contains(QT_CONFIG, system-harfbuzz) { - LIBS_PRIVATE += -lharfbuzz -} diff --git a/src/3rdparty/harfbuzzng.pri b/src/3rdparty/harfbuzzng.pri new file mode 100644 index 0000000000..74433688f6 --- /dev/null +++ b/src/3rdparty/harfbuzzng.pri @@ -0,0 +1,6 @@ +contains(QT_CONFIG, harfbuzz) { + INCLUDEPATH += $$PWD/harfbuzz-ng/include + LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix() +} else:contains(QT_CONFIG, system-harfbuzz) { + LIBS_PRIVATE += -lharfbuzz +} diff --git a/src/gui/text/text.pri b/src/gui/text/text.pri index 2a0e4eff32..c67769ad48 100644 --- a/src/gui/text/text.pri +++ b/src/gui/text/text.pri @@ -88,7 +88,7 @@ HEADERS += \ contains(QT_CONFIG, harfbuzz)|contains(QT_CONFIG, system-harfbuzz) { DEFINES += QT_ENABLE_HARFBUZZ_NG - include($$PWD/../../3rdparty/harfbuzz.pri) + include($$PWD/../../3rdparty/harfbuzzng.pri) SOURCES += text/qharfbuzzng.cpp HEADERS += text/qharfbuzzng_p.h diff --git a/src/src.pro b/src/src.pro index 114ee5e424..687f2502ab 100644 --- a/src/src.pro +++ b/src/src.pro @@ -80,6 +80,9 @@ src_testlib.subdir = $$PWD/testlib src_testlib.target = sub-testlib src_testlib.depends = src_corelib # src_gui & src_widgets are not build-depends +src_3rdparty_harfbuzzng.subdir = $$PWD/3rdparty/harfbuzz-ng +src_3rdparty_harfbuzzng.target = sub-3rdparty-harfbuzzng + src_angle.subdir = $$PWD/angle src_angle.target = sub-angle angle_d3d11: src_angle.depends = src_corelib @@ -130,6 +133,10 @@ contains(QT_CONFIG, dbus) { } contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent !contains(QT_CONFIG, no-gui) { + contains(QT_CONFIG, harfbuzz) { + SUBDIRS += src_3rdparty_harfbuzzng + src_gui.depends += src_3rdparty_harfbuzzng + } win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) { SUBDIRS += src_angle src_gui.depends += src_angle @@ -159,7 +166,8 @@ android:!android-no-sdk: SUBDIRS += src_android TR_EXCLUDE = \ src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic src_tools_qlalr \ - src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml + src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml \ + src_3rdparty_harfbuzzng sub-tools.depends = $$TOOLS QMAKE_EXTRA_TARGETS = sub-tools -- cgit v1.2.3