89a82e7210
icu is required to build Q5tWebkit. When UChar is defined as char16_t in ICU, then qtbase fails to detect ICU. The issue is described https://bugreports.qt.io/browse/QTBUG-49586 Build fails with following error messages: ... ustring.h:473:20: error: ‘UChar’ does not name a type u_strCompare(const UChar *s1, int32_t length1, ^ ^ make[2]: *** [Makefile:195: icu.o] Error 1 ICU disabled. The ICU library support cannot be enabled. Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
75 lines
3.3 KiB
Diff
75 lines
3.3 KiB
Diff
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
|
Date: Mon, 23 Nov 2015 03:54:00 +0000
|
|
Subject: [PATCH 1/1] When UChar is defined as char16_t in ICU, then qtbase fails to detect ICU.
|
|
|
|
Build fails with following error:
|
|
|
|
ICU auto-detection... ()
|
|
x86_64-pc-linux-gnu-g++ -c -march=core2 -O2 -fno-ident \
|
|
-frecord-gcc-switches -pipe -Wall -O2 -Wall -W -fPIC -I. \
|
|
-I/var/tmp/portage/dev-qt/qtcore-5.5.1/work/qtbase-opensource-src-5.5.1/mkspecs/linux-g++ -o icu.o icu.cpp
|
|
In file included from /usr/include/unicode/utypes.h:36:0,
|
|
from icu.cpp:34:
|
|
/usr/include/unicode/umachine.h:306:13: error: 'char16_t' does not name a type
|
|
typedef char16_t UChar;
|
|
^
|
|
In file included from /usr/include/unicode/utypes.h:37:0,
|
|
from icu.cpp:34:
|
|
/usr/include/unicode/uversion.h:165:55: error: 'UChar' does not name a type
|
|
u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
|
|
^
|
|
...
|
|
Makefile:177: recipe for target 'icu.o' failed
|
|
gmake: *** [icu.o] Error 1
|
|
ICU disabled.
|
|
The ICU library support cannot be enabled.
|
|
|
|
This change isn't needed for new Qt versions, because c++11 is mandatory since 5.7.
|
|
Upstream desided not to merge this change into old branches, like 5.6.
|
|
Original patch was slightly modified to apply cleanly on Qt 5.6.3.
|
|
|
|
Fetch from: https://bugreports.qt.io/secure/attachment/52478/qtbase-5.5.1-icu.patch
|
|
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
|
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
|
|
|
|
---
|
|
diff -purN qt5base-5.6.3.orig/config.tests/unix/compile.test qt5base-5.6.3/config.tests/unix/compile.test
|
|
--- qt5base-5.6.3.orig/config.tests/unix/compile.test 2019-08-11 00:35:33.181545706 +0300
|
|
+++ qt5base-5.6.3/config.tests/unix/compile.test 2017-09-06 15:13:54.000000000 +0300
|
|
@@ -47,7 +47,7 @@ while [ "$#" -gt 0 ]; do
|
|
INC=`echo $PARAM | sed -e 's/^-I//'`
|
|
INCLUDEPATH="$INCLUDEPATH \"$INC\""
|
|
;;
|
|
- -f*|-D*)
|
|
+ -f*|-D*|-std=*)
|
|
CFLAGS="$CFLAGS \"$PARAM\""
|
|
CXXFLAGS="$CXXFLAGS \"$PARAM\""
|
|
;;
|
|
diff -purN qt5base-5.6.3.orig/configure qt5base-5.6.3/configure
|
|
--- qt5base-5.6.3.orig/configure 2019-08-11 00:57:45.488214036 +0300
|
|
+++ qt5base-5.6.3/configure 2017-09-06 15:13:54.000000000 +0300
|
|
@@ -5183,8 +5183,10 @@ fi
|
|
|
|
# auto-detect libicu support
|
|
if [ "$CFG_ICU" != "no" ]; then
|
|
- if compileTest unix/icu "ICU"; then
|
|
+ QT_CXXFLAGS_ICU=`icu-config --cxxflags 2>/dev/null`
|
|
+ if compileTest unix/icu "ICU" $QT_CXXFLAGS_ICU; then
|
|
[ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
|
|
+ QMakeVar set QT_CXXFLAGS_ICU "$QT_CXXFLAGS_ICU"
|
|
else
|
|
if [ "$CFG_ICU" = "auto" ]; then
|
|
CFG_ICU=no
|
|
diff -purN qt5base-5.6.3.orig/doc/Makefile qt5base-5.6.3/doc/Makefile
|
|
diff -purN qt5base-5.6.3.orig/src/corelib/tools/tools.pri qt5base-5.6.3/src/corelib/tools/tools.pri
|
|
--- qt5base-5.6.3.orig/src/corelib/tools/tools.pri 2019-08-11 00:45:45.073818635 +0300
|
|
+++ qt5base-5.6.3/src/corelib/tools/tools.pri 2017-09-06 15:13:54.000000000 +0300
|
|
@@ -169,6 +169,7 @@ contains(QT_CONFIG,icu) {
|
|
tools/qcollator_icu.cpp \
|
|
tools/qtimezoneprivate_icu.cpp
|
|
DEFINES += QT_USE_ICU
|
|
+ QMAKE_CXXFLAGS += $$QT_CXXFLAGS_ICU
|
|
} else: win32 {
|
|
SOURCES += tools/qcollator_win.cpp
|
|
} else: macx {
|