diff options
author | Michal Klocek <michal.klocek@qt.io> | 2023-11-13 14:19:58 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2023-11-14 15:54:38 +0100 |
commit | b63045477ea05c17f9abe9434e6d824453e3935a (patch) | |
tree | 9cecb340d920c02021b94132604cd1c47a529562 | |
parent | f035766b16b4a2a22256dfa78b962ec611cc0727 (diff) |
Fix android build
Fix qt namespace issues:
* qjniarray.h:339:30: error: no template named 'Traits';
* ld.lld: error: version script assignment of 'Qt_6' to symbol '_ZNTestQTNamespace114QReadWriteLock16destroyRecursiveEP21QReadWriteLockPrivate' failed: symbol not defined
* same for _ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate
* qtimezoneprivate_android.cpp:14:21: error: unknown type name 'TimeZone'
* qandroidplatformclipboard.h:13:1: error: no template named 'Object'
Change-Id: Ia5fc3990af4a4d762e194c7951727f8d5b10670e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r-- | src/corelib/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/corelib/kernel/qjniobject.h | 2 | ||||
-rw-r--r-- | src/corelib/time/qtimezoneprivate_android.cpp | 1 | ||||
-rw-r--r-- | src/network/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformclipboard.h | 4 |
5 files changed, 17 insertions, 5 deletions
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index 79846a0858..59a34a314a 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -1460,6 +1460,11 @@ foreach(minor_version RANGE ${PROJECT_VERSION_MINOR}) string(APPEND linker_script_contents "${current} {} ${previous};\n") endif() endforeach() +if (QT_NAMESPACE STREQUAL "") + set(linker_script_symbol "_ZN14QReadWriteLock16destroyRecursiveEP21QReadWriteLockPrivate") +else() + set(linker_script_symbol "_ZN15${QT_NAMESPACE}14QReadWriteLock16destroyRecursiveEPNS_21QReadWriteLockPrivateE") +endif() qt_internal_extend_target(Core EXTRA_LINKER_SCRIPT_CONTENT "${linker_script_contents}" @@ -1469,5 +1474,5 @@ qt_internal_extend_target(Core # QFutureInterfaceBase::setContinuation(std::function<void (QFutureInterfaceBase const&)>, QFutureInterfaceBasePrivate*) "_ZN20QFutureInterfaceBase15setContinuationE*P27QFutureInterfaceBasePrivate" # QReadWriteLock::destroyRecursive(QReadWriteLockPrivate*) - "_ZN14QReadWriteLock16destroyRecursiveEP21QReadWriteLockPrivate" + ${linker_script_symbol} ) diff --git a/src/corelib/kernel/qjniobject.h b/src/corelib/kernel/qjniobject.h index 2c353ad137..73adb7140a 100644 --- a/src/corelib/kernel/qjniobject.h +++ b/src/corelib/kernel/qjniobject.h @@ -773,7 +773,9 @@ inline bool operator!=(const QJniObject &obj1, const QJniObject &obj2) // This cannot be included earlier as QJniArray is a QJniObject subclass, but it // must be included so that we can implement QJniObject::LocalFrame conversion. +QT_END_NAMESPACE #include <QtCore/qjniarray.h> +QT_BEGIN_NAMESPACE template <typename ...Args> template <typename T> diff --git a/src/corelib/time/qtimezoneprivate_android.cpp b/src/corelib/time/qtimezoneprivate_android.cpp index 935a0cd745..05b4bd8cbc 100644 --- a/src/corelib/time/qtimezoneprivate_android.cpp +++ b/src/corelib/time/qtimezoneprivate_android.cpp @@ -7,6 +7,7 @@ #include <QtCore/QJniEnvironment> #include <QtCore/QSet> +#include <QtCore/qjnitypes.h> QT_BEGIN_NAMESPACE diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt index 4437946ab5..9a616e0c34 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt @@ -400,11 +400,15 @@ qt_internal_extend_target(Network CONDITION WIN32 if(QT_FEATURE_private_tests) add_subdirectory(doc/snippets/network) endif() - +if (QT_NAMESPACE STREQUAL "") + set(linker_script_symbol "_ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate") +else() + set(linker_script_symbol "_ZN15${QT_NAMESPACE}16QNetworkDatagram7destroyEPNS_23QNetworkDatagramPrivateE") +endif() qt_internal_extend_target(Network # Workaround for QTBUG-118229: # Function called by inline methods taking a pointer to a private class as a parameter EXTRA_LINKER_SCRIPT_EXPORTS # QNetworkDatagram::destroy(QNetworkDatagramPrivate *d) - "_ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate" + ${linker_script_symbol} ) diff --git a/src/plugins/platforms/android/qandroidplatformclipboard.h b/src/plugins/platforms/android/qandroidplatformclipboard.h index e91252045b..0d31a17bd8 100644 --- a/src/plugins/platforms/android/qandroidplatformclipboard.h +++ b/src/plugins/platforms/android/qandroidplatformclipboard.h @@ -11,10 +11,10 @@ #ifndef QT_NO_CLIPBOARD -Q_DECLARE_JNI_CLASS(QtClipboardManager, "org/qtproject/qt/android/QtClipboardManager"); - QT_BEGIN_NAMESPACE +Q_DECLARE_JNI_CLASS(QtClipboardManager, "org/qtproject/qt/android/QtClipboardManager"); + class QAndroidPlatformClipboard : public QPlatformClipboard { public: |