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 <lars.knoll@digia.com>bb10
parent
4dcf40b308
commit
a7e58bf253
|
|
@ -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()
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
10
src/src.pro
10
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue