Warning, /graphics/krita/3rdparty/ext_qt/0046-Android-Update-clang-mkspecs.patch is written in an unsupported language. File is not indexed.

0001 From 024c4f76ac453b2450fd60e590b3138d12bcc6b4 Mon Sep 17 00:00:00 2001
0002 From: BogDan Vatra <bogdan@kde.org>
0003 Date: Tue, 9 Jul 2019 10:34:31 +0300
0004 Subject: [PATCH 46/46] Android: Update clang mkspecs
0005 
0006 Follow Google's BuildSystemMaintainers doc to simplify (a lot) the clang support
0007 It is needed to support future NDK releases painlessly.
0008 Also remove old workarounds.
0009 
0010 [ChangeLog][Android] Android depends on NDK r20+
0011 
0012 Change-Id: Ib4c07fc71e0f5a264d804b0b3baa18ff79d07630
0013 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
0014 ---
0015  mkspecs/android-clang/qmake.conf      | 40 ++++++++++-----------------
0016  mkspecs/android-g++/qmake.conf        |  5 ++++
0017  mkspecs/common/android-base-head.conf |  1 -
0018  mkspecs/common/android-base-tail.conf | 16 +++--------
0019  src/corelib/tools/qstring.h           |  9 ------
0020  src/gui/text/qcssparser.cpp           |  4 ---
0021  6 files changed, 23 insertions(+), 52 deletions(-)
0022 
0023 diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf
0024 index 975d43779d..4c231e74b3 100644
0025 --- a/mkspecs/android-clang/qmake.conf
0026 +++ b/mkspecs/android-clang/qmake.conf
0027 @@ -14,42 +14,30 @@ NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST
0028  QMAKE_CC      = $$NDK_LLVM_PATH/bin/clang
0029  QMAKE_CXX     = $$NDK_LLVM_PATH/bin/clang++
0030  
0031 +# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md
0032 +
0033  equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
0034 -    QMAKE_CFLAGS += -target armv7-none-linux-androideabi
0035 -else: equals(ANDROID_TARGET_ARCH, armeabi): \
0036 -    QMAKE_CFLAGS += -target armv5te-none-linux-androideabi
0037 +    QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "")
0038  else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \
0039 -    QMAKE_CFLAGS += -target aarch64-none-linux-android
0040 +    QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
0041  else: equals(ANDROID_TARGET_ARCH, x86): \
0042 -    QMAKE_CFLAGS += -target i686-none-linux-android -mstackrealign
0043 +    QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign
0044  else: equals(ANDROID_TARGET_ARCH, x86_64): \
0045 -    QMAKE_CFLAGS += -target x86_64-none-linux-android
0046 -else: equals(ANDROID_TARGET_ARCH, mips): \
0047 -    QMAKE_CFLAGS += -target mipsel-none-linux-android
0048 -else: equals(ANDROID_TARGET_ARCH, mips64): \
0049 -    QMAKE_CFLAGS += -target mips64el-none-linux-android
0050 -
0051 -QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info
0052 -
0053 -QMAKE_LINK    = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++
0054 -equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a
0055 +    QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
0056  
0057 -QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
0058 -                -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
0059 -                -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
0060 -                -isystem $$NDK_ROOT/sources/android/support/include \
0061 -                -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include
0062 +QMAKE_CFLAGS += -fno-limit-debug-info
0063  
0064 -ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
0065 +QMAKE_LINK    = $$QMAKE_CXX $$QMAKE_CFLAGS
0066  
0067 -ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so
0068 +ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/$$NDK_TOOLS_PREFIX/libc++_shared.so
0069  
0070  ANDROID_USE_LLVM = true
0071  
0072 -exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \
0073 -    ANDROID_CXX_STL_LIBS = -lc++
0074 -else: \
0075 -    ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "")
0076 +QMAKE_CFLAGS_OPTIMIZE_SIZE  = -Oz
0077 +QMAKE_LIBDIR_POST           =
0078 +QMAKE_LFLAGS                =
0079 +QMAKE_LIBS_PRIVATE          =
0080 +ANDROID_CXX_STL_LIBS        =
0081  
0082  QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
0083  
0084 diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf
0085 index 0cb3558f96..451e12bc75 100644
0086 --- a/mkspecs/android-g++/qmake.conf
0087 +++ b/mkspecs/android-g++/qmake.conf
0088 @@ -12,6 +12,7 @@ include(../common/android-base-head.conf)
0089  QMAKE_CC                = $${CROSS_COMPILE}gcc
0090  QMAKE_CXX               = $${CROSS_COMPILE}g++
0091  QMAKE_LINK              = $$QMAKE_CXX
0092 +QMAKE_CFLAGS            = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "")
0093  
0094  ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/$$NDK_TOOLCHAIN_VERSION/libs/$$ANDROID_TARGET_ARCH
0095  ANDROID_STDCPP_PATH            = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libgnustl_shared.so
0096 @@ -32,4 +33,8 @@ else: \
0097      LIBGCC_PATH_FULL = $$system("$$QMAKE_CXX -print-libgcc-file-name")
0098  ANDROID_SOURCES_CXX_STL_LIBDIR += $$dirname(LIBGCC_PATH_FULL)
0099  
0100 +QMAKE_LIBDIR_POST       = $$ANDROID_SOURCES_CXX_STL_LIBDIR
0101 +QMAKE_LFLAGS            = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
0102 +equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64
0103 +
0104  include(../common/android-base-tail.conf)
0105 diff --git a/mkspecs/common/android-base-head.conf b/mkspecs/common/android-base-head.conf
0106 index a43fc7f23e..21847d0fb1 100644
0107 --- a/mkspecs/common/android-base-head.conf
0108 +++ b/mkspecs/common/android-base-head.conf
0109 @@ -64,7 +64,6 @@ isEmpty(ANDROID_SDK_BUILD_TOOLS_REVISION) {
0110  }
0111  
0112  CONFIG += $$ANDROID_PLATFORM
0113 -QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "")
0114  
0115  ANDROID_PLATFORM_ROOT_PATH  = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/
0116  
0117 diff --git a/mkspecs/common/android-base-tail.conf b/mkspecs/common/android-base-tail.conf
0118 index edc255d08e..c970379f28 100644
0119 --- a/mkspecs/common/android-base-tail.conf
0120 +++ b/mkspecs/common/android-base-tail.conf
0121 @@ -6,22 +6,17 @@ isEmpty(DEFAULT_ANDROID_NDK_ROOT): return()
0122  QMAKE_CFLAGS += -fstack-protector-strong -DANDROID
0123  
0124  equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
0125 -    QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove
0126 +    QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp
0127  else: equals(ANDROID_TARGET_ARCH, armeabi): \
0128 -    QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float -fno-builtin-memmove
0129 -# -fno-builtin-memmove is used to workaround https://code.google.com/p/android/issues/detail?id=81692
0130 +    QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float
0131  
0132  QMAKE_CFLAGS_WARN_ON    = -Wall -W
0133  QMAKE_CFLAGS_WARN_OFF   =
0134  equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) {
0135      CONFIG += optimize_size
0136      QMAKE_CFLAGS_DEBUG                     = -g -marm -O0
0137 -    equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) {
0138 -        DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND
0139 -    } else {
0140 -        QMAKE_CFLAGS_RELEASE += -mthumb
0141 -        QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
0142 -    }
0143 +    QMAKE_CFLAGS_RELEASE += -mthumb
0144 +    QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
0145  }
0146  
0147  QMAKE_CFLAGS_SHLIB      = -fPIC
0148 @@ -61,15 +56,12 @@ QMAKE_STRIP             =
0149  QMAKE_RANLIB            = $${CROSS_COMPILE}ranlib
0150  
0151  QMAKE_INCDIR_POST       =
0152 -QMAKE_LIBDIR_POST       = $$ANDROID_SOURCES_CXX_STL_LIBDIR
0153  QMAKE_INCDIR_X11        =
0154  QMAKE_LIBDIR_X11        =
0155  QMAKE_INCDIR_OPENGL     =
0156  QMAKE_LIBDIR_OPENGL     =
0157  
0158  QMAKE_LINK_SHLIB        = $$QMAKE_LINK
0159 -QMAKE_LFLAGS            = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
0160 -equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64
0161  QMAKE_LFLAGS_APP        = -Wl,--no-undefined -Wl,-z,noexecstack -shared
0162  QMAKE_LFLAGS_SHLIB      = -Wl,--no-undefined -Wl,-z,noexecstack -shared
0163  QMAKE_LFLAGS_PLUGIN     = $$QMAKE_LFLAGS_SHLIB
0164 diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
0165 index 6be3dcdbe1..7034b7ae71 100644
0166 --- a/src/corelib/tools/qstring.h
0167 +++ b/src/corelib/tools/qstring.h
0168 @@ -56,15 +56,6 @@
0169  #include <string>
0170  #include <iterator>
0171  
0172 -#if defined(Q_OS_ANDROID) && !defined(ANDROID_HAS_WSTRING)
0173 -// std::wstring is disabled on android's glibc, as bionic lacks certain features
0174 -// that libstdc++ checks for (like mbcslen).
0175 -namespace std
0176 -{
0177 -    typedef basic_string<wchar_t> wstring;
0178 -}
0179 -#endif
0180 -
0181  #include <stdarg.h>
0182  
0183  #ifdef truncate
0184 diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
0185 index 7fc90156e5..797ad9cbd0 100644
0186 --- a/src/gui/text/qcssparser.cpp
0187 +++ b/src/gui/text/qcssparser.cpp
0188 @@ -606,11 +606,7 @@ bool ValueExtractor::extractBorder(int *borders, QBrush *colors, BorderStyle *st
0189          case BorderRightStyle: styles[RightEdge] = decl.styleValue(); break;
0190          case BorderStyles:  decl.styleValues(styles); break;
0191  
0192 -#ifndef QT_OS_ANDROID_GCC_48_WORKAROUND
0193          case BorderTopLeftRadius: radii[0] = sizeValue(decl); break;
0194 -#else
0195 -        case BorderTopLeftRadius: new(radii)QSize(sizeValue(decl)); break;
0196 -#endif
0197          case BorderTopRightRadius: radii[1] = sizeValue(decl); break;
0198          case BorderBottomLeftRadius: radii[2] = sizeValue(decl); break;
0199          case BorderBottomRightRadius: radii[3] = sizeValue(decl); break;
0200 -- 
0201 2.33.0
0202