summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2023-11-13 14:19:58 +0100
committerMichal Klocek <michal.klocek@qt.io>2023-11-14 15:54:38 +0100
commitb63045477ea05c17f9abe9434e6d824453e3935a (patch)
tree9cecb340d920c02021b94132604cd1c47a529562
parentf035766b16b4a2a22256dfa78b962ec611cc0727 (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.txt7
-rw-r--r--src/corelib/kernel/qjniobject.h2
-rw-r--r--src/corelib/time/qtimezoneprivate_android.cpp1
-rw-r--r--src/network/CMakeLists.txt8
-rw-r--r--src/plugins/platforms/android/qandroidplatformclipboard.h4
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: