From 091e61b3525c700ce4198086bbd0d95a59fcb31f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 5 Jul 2016 13:09:17 -0700 Subject: Fix namespaced build using harfbuzz-ng harfbuzz-ng doesn't link to Qt libraries, but uses the Qt headers for some types. With CONFIG -= qt, we don't get QT_NAMESPACE set, which leads to linker errors later. Instead of setting QT_NAMESPACE, ask qversiontagging.h not to tag the headers. Change-Id: Ie585843cfb684bc3b6e3fffd145e7e438ae7c6bd Reviewed-by: Oswald Buddenhagen --- src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/3rdparty') diff --git a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro index 163842e8fc..4325fd153b 100644 --- a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro +++ b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro @@ -23,7 +23,10 @@ win32: DEFINES += HB_NO_WIN1256 android: DEFINES += _POSIX_C_SOURCE=200112L INCLUDEPATH += $$PWD/include + +# Harfbuzz-NG inside Qt uses the Qt atomics (inline code only) INCLUDEPATH += $$QT.core.includes +DEFINES += QT_NO_VERSION_TAGGING SOURCES += \ $$PWD/src/hb-blob.cc \ -- cgit v1.2.3 From 69b43e74d78e050cf5e40197acafa4bc9f90c0bd Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 27 Jul 2016 09:28:13 +0200 Subject: Harfbuzz: Fix warnings of MSVC 64 bit qtbase\src\3rdparty\harfbuzz\src\harfbuzz-shaper.cpp(97): error C2220: warning treated as error - no 'object' file generated qtbase\src\3rdparty\harfbuzz\src\harfbuzz-shaper.cpp(97): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning) qtbase\src\3rdparty\harfbuzz\src\harfbuzz-shaper.cpp(284): warning C4800: 'HB_Bool': forcing value to bool 'true' or 'false' (performance warning) qtbase\src\3rdparty\harfbuzz\src\harfbuzz-arabic.c(924): warning C4244: 'initializing': conversion from '__int64' to 'int', possible loss of data qtbase\src\3rdparty\harfbuzz\src\harfbuzz-arabic.c(984): warning C4244: '=': conversion from '__int64' to 'int', possible loss of data qtbase\src\3rdparty\harfbuzz\src\harfbuzz-arabic.c(995): warning C4244: '=': conversion from '__int64' to 'int', possible loss of data Required to build QtCore after change a372cf5a80ec1a774f8f624b30b3c8209b800ec8. Change-Id: Ieb65c19e518984dde91bc8acab35203f8c271da3 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/3rdparty/harfbuzz/src/harfbuzz-arabic.c | 6 +++--- src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/3rdparty') diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c b/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c index b43ac9c353..966537ffa0 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c +++ b/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c @@ -921,7 +921,7 @@ static void shapedString(const HB_UChar16 *uc, hb_uint32 stringLength, hb_uint32 for (i = 0; i < len; i++) { hb_uint8 r = *ch >> 8; - int gpos = data - shapeBuffer; + const int gpos = int(data - shapeBuffer); if (r != 0x06) { if (r == 0x20) { @@ -981,7 +981,7 @@ static void shapedString(const HB_UChar16 *uc, hb_uint32 stringLength, hb_uint32 /* qDebug("glyph %d (char %d) is mark!", gpos, i); */ } else { attributes[gpos].mark = FALSE; - clusterStart = data - shapeBuffer; + clusterStart = int(data - shapeBuffer); } attributes[gpos].clusterStart = !attributes[gpos].mark; attributes[gpos].combiningClass = HB_GetUnicodeCharCombiningClass(*ch); @@ -992,7 +992,7 @@ static void shapedString(const HB_UChar16 *uc, hb_uint32 stringLength, hb_uint32 ch++; logClusters[i] = clusterStart; } - *shapedLength = data - shapeBuffer; + *shapedLength = int(data - shapeBuffer); HB_FREE_STACKARRAY(props); } diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp index f7a4195308..30dde281e8 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp +++ b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp @@ -94,7 +94,7 @@ static inline void positionCluster(HB_ShaperItem *item, int gfrom, int glast) offsetBase = ((size * 10) - markTotalHeight) / 2; // Use offset that just fits } - bool rightToLeft = item->item.bidiLevel % 2; + const bool rightToLeft = (item->item.bidiLevel % 2) != 0; int i; unsigned char lastCmb = 0; @@ -281,7 +281,7 @@ void HB_HeuristicSetGlyphAttributes(HB_ShaperItem *item) // first char in a run is never (treated as) a mark int cStart = 0; - const bool symbolFont = item->face->isSymbolFont; + const bool symbolFont = item->face->isSymbolFont != 0; attributes[0].mark = false; attributes[0].clusterStart = true; attributes[0].dontPrint = (!symbolFont && uc[0] == 0x00ad) || HB_IsControlChar(uc[0]); -- cgit v1.2.3