aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt20
-rw-r--r--singleapplication_p.cpp20
2 files changed, 27 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85dba84..408fec2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,22 +10,26 @@ add_library(${PROJECT_NAME} STATIC
)
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
+set(QT_MAJOR_VERSION 5 CACHE STRING "Qt version to use (5 or 6), defaults to 5")
+
# Find dependencies
-find_package(Qt5 COMPONENTS Network REQUIRED)
-target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Network)
+set(QT_COMPONENTS Core Network)
+set(QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Network)
if(QAPPLICATION_CLASS STREQUAL QApplication)
- find_package(Qt5 COMPONENTS Widgets REQUIRED)
- target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Widgets)
+ list(APPEND QT_COMPONENTS Widgets)
+ list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Widgets)
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
- find_package(Qt5 COMPONENTS Gui REQUIRED)
- target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Gui)
+ list(APPEND QT_COMPONENTS Gui)
+ list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Gui)
else()
set(QAPPLICATION_CLASS QCoreApplication)
- find_package(Qt5 COMPONENTS Core REQUIRED)
- target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Core)
endif()
+find_package(Qt${QT_MAJOR_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED)
+
+target_link_libraries(${PROJECT_NAME} PUBLIC ${QT_LIBRARIES})
+
if(WIN32)
target_link_libraries(${PROJECT_NAME} PRIVATE advapi32)
endif()
diff --git a/singleapplication_p.cpp b/singleapplication_p.cpp
index 3d1e408..65859c7 100644
--- a/singleapplication_p.cpp
+++ b/singleapplication_p.cpp
@@ -253,7 +253,11 @@ bool SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
writeStream << blockServerName.toLatin1();
writeStream << static_cast<quint8>(connectionType);
writeStream << instanceNumber;
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ quint16 checksum = qChecksum(QByteArray(initMsg, static_cast<quint32>(initMsg.length())));
+#else
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
+#endif
writeStream << checksum;
// The header indicates the message length that follows
@@ -274,10 +278,12 @@ bool SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
quint16 SingleApplicationPrivate::blockChecksum() const
{
- return qChecksum(
- static_cast <const char *>( memory->data() ),
- offsetof( InstancesInfo, checksum )
- );
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ quint16 checksum = qChecksum(QByteArray(static_cast<const char*>(memory->constData()), offsetof(InstancesInfo, checksum)));
+#else
+ quint16 checksum = qChecksum(static_cast<const char*>(memory->constData()), offsetof(InstancesInfo, checksum));
+#endif
+ return checksum;
}
qint64 SingleApplicationPrivate::primaryPid() const
@@ -413,7 +419,11 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
quint16 msgChecksum = 0;
readStream >> msgChecksum;
- const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ const quint16 actualChecksum = qChecksum(QByteArray(msgBytes, static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
+#else
+ const quint16 actualChecksum = qChecksum(msgBytes.constData(), static_cast<quint32>(msgBytes.length() - sizeof(quint16)));
+#endif
bool isValid = readStream.status() == QDataStream::Ok &&
QLatin1String(latin1Name) == blockServerName &&