Skip to content

Commit 49a29e3

Browse files
authored
Merge pull request #36 from nemerle/qt6_plus_some_other_things
Switch to qt6 and update jcon
2 parents ac136f0 + 9268c4b commit 49a29e3

21 files changed

+213
-123
lines changed

3rd_party/ExternalProject_JCON.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
libname(jcon jcon)
2-
find_package(Qt5 COMPONENTS Network WebSockets Test REQUIRED)
2+
find_package(Qt6 COMPONENTS Network WebSockets Test REQUIRED)
33

44
ExternalProject_Add(
55
jcon_BUILD
@@ -18,4 +18,4 @@ add_dependencies(jcon_IMP jcon_BUILD)
1818
file(MAKE_DIRECTORY ${ThirdParty_Install_Dir}/include)
1919
set_property(TARGET jcon_IMP PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ThirdParty_Install_Dir}/include)
2020
SET_PROPERTY(TARGET jcon_IMP APPEND PROPERTY IMPORTED_LOCATION ${jcon_LIBRARY_STATIC} )
21-
set_property(TARGET jcon_IMP APPEND PROPERTY INTERFACE_LINK_LIBRARIES Qt5::Network Qt5::WebSockets Qt5::Test)
21+
set_property(TARGET jcon_IMP APPEND PROPERTY INTERFACE_LINK_LIBRARIES Qt6::Network Qt6::WebSockets Qt6::Test)

3rd_party/jcon-cpp/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 2.8.12)
1+
cmake_minimum_required(VERSION 3.10)
22
cmake_policy(SET CMP0043 NEW)
33
cmake_policy(SET CMP0053 NEW)
44

@@ -24,7 +24,7 @@ if(MINGW)
2424
endif()
2525

2626
if(APPLE OR UNIX)
27-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wno-conversion -Wno-sign-compare -Wno-strict-aliasing")
27+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-conversion -Wno-sign-compare -Wno-strict-aliasing") #-Werror
2828
endif()
2929

3030
if(APPLE)
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
project(jcon)
22

3+
set(QTDIR $ENV{QTDIR})
4+
set(QT5_DIR $ENV{QTDIR})
5+
36
set(CMAKE_AUTOMOC ON)
47
set(CMAKE_INCLUDE_CURRENT_DIR ON)
8+
set(CMAKE_PREFIX_PATH ${QTDIR})
59

610
file(GLOB ${PROJECT_NAME}_headers *.h)
711
file(GLOB ${PROJECT_NAME}_sources *.cpp)
@@ -10,13 +14,13 @@ file(GLOB ${PROJECT_NAME}_sources *.cpp)
1014

1115
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_headers} ${${PROJECT_NAME}_sources})
1216
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${${PROJECT_NAME}_headers}")
13-
find_package(Qt5 COMPONENTS Core Network WebSockets)
14-
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Network)
1517

18+
find_package(Qt6 COMPONENTS Core Network Test WebSockets)
1619
install(TARGETS ${PROJECT_NAME}
1720
RUNTIME DESTINATION bin
1821
LIBRARY DESTINATION lib
1922
ARCHIVE DESTINATION lib
2023
PUBLIC_HEADER DESTINATION include/jcon
2124
)
2225
target_compile_definitions(jcon PUBLIC NDEBUG)
26+
target_link_libraries(jcon PUBLIC Qt6::Core Qt6::Network Qt6::WebSockets)

3rd_party/jcon-cpp/jcon/CMakeLists.txt.autosave

Lines changed: 0 additions & 22 deletions
This file was deleted.

3rd_party/jcon-cpp/jcon/jcon.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#include <QtCore/qglobal.h>
3+
#include <QtGlobal>
44

55
//#ifndef JCON_DLL
66
//#define JCON_DLL

3rd_party/jcon-cpp/jcon/json_rpc_client.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "jcon_assert.h"
55
#include "string_util.h"
66

7+
78
#include <QUuid>
89
#include <QEventLoop>
910
#include <QCoreApplication>
@@ -13,6 +14,8 @@
1314

1415
namespace jcon {
1516

17+
const QString JsonRpcClient::InvalidRequestId = "";
18+
1619
JsonRpcClient::JsonRpcClient(std::shared_ptr<JsonRpcSocket> socket,
1720
QObject* parent,
1821
std::shared_ptr<JsonRpcLogger> logger,
@@ -157,7 +160,6 @@ JsonRpcClient::doCallNamedParams(const QString& method,
157160

158161
return request;
159162
}
160-
161163
int JsonRpcClient::outstandingRequestCount() const
162164
{
163165
return m_outstanding_request_count;

3rd_party/jcon-cpp/jcon/json_rpc_client.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ private slots:
9797
void jsonResponseReceived(const QJsonObject& obj);
9898

9999
private:
100-
const QString InvalidRequestId = "";
100+
static const QString InvalidRequestId;
101101

102102
static QString formatLogMessage(const QString& method,
103103
const QVariantList& args,

3rd_party/jcon-cpp/jcon/json_rpc_server.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <QJsonObject>
1111
#include <QVariant>
1212
#include <QMetaMethod>
13+
#include <QMetaType>
1314

1415
namespace {
1516
QString logInvoke(const QMetaMethod& meta_method,
@@ -376,8 +377,8 @@ bool JsonRpcServer::doCall(QObject* object,
376377
}
377378

378379
const char* return_type_name = meta_method.typeName();
379-
int return_type = QMetaType::type(return_type_name);
380-
if (return_type != QMetaType::Void) {
380+
QMetaType return_type = QMetaType::fromName(return_type_name);
381+
if (return_type.id() != QMetaType::Void) {
381382
return_value = QVariant(return_type, nullptr);
382383
}
383384

3rd_party/jcon-cpp/jcon/json_rpc_websocket.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <QtGlobal>
2+
13
#include "json_rpc_websocket.h"
24
#include "jcon_assert.h"
35

@@ -41,7 +43,7 @@ void JsonRpcWebSocket::setupSocket()
4143
this, &JsonRpcWebSocket::dataReady);
4244

4345
void (QWebSocket::*errorPtr)(QAbstractSocket::SocketError) =
44-
&QWebSocket::error;
46+
&QWebSocket::errorOccurred;
4547
connect(m_socket, errorPtr, this,
4648
[this](QAbstractSocket::SocketError error) {
4749
emit socketError(m_socket, error);

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CMAKE_MINIMUM_REQUIRED(VERSION 3.8)
2-
PROJECT(SEGS-Client)
2+
PROJECT(SEGSClient)
33

44
set(CMAKE_CXX_STANDARD 14)
55
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -45,7 +45,7 @@ add_subdirectory(3rd_party)
4545
link_directories(${PROJECT_SOURCE_DIR}/lib) # ERICEDIT: Changed to lowercase.
4646

4747
include(LocateQt5)
48-
find_package(Qt5 COMPONENTS Core Sql REQUIRED)
48+
find_package(Qt6 COMPONENTS Core Sql REQUIRED)
4949

5050
link_directories(${ThirdParty_Install_Dir}/lib)
5151
include_directories(SYSTEM ${ThirdParty_Install_Dir}/include)

CMakeScripts/LocateQt5.cmake

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ IF(MSVC)
1010
# get root path so we can search for 5.3, 5.4, 5.5, etc
1111
STRING(REPLACE "/Tools" ";" QT_BIN "${QT_BIN}")
1212
LIST(GET QT_BIN 0 QT_BIN)
13-
FILE(GLOB QT_VERSIONS "${QT_BIN}/5.*")
13+
FILE(GLOB QT_VERSIONS "${QT_BIN}/6.*")
1414
LIST(SORT QT_VERSIONS)
1515

1616
# assume the latest version will be last alphabetically
@@ -44,11 +44,11 @@ ENDMACRO(TO_NATIVE_PATH)
4444
# use Qt_DIR approach so you can find Qt after cmake has been invoked
4545
IF(NOT QT_MISSING)
4646
MESSAGE("-- Qt found: ${QT_PATH}")
47-
SET(Qt5_DIR "${QT_PATH}/lib/cmake/Qt5/")
48-
SET(Qt5Test_DIR "${QT_PATH}/lib/cmake/Qt5Test")
47+
SET(Qt6_DIR "${QT_PATH}/lib/cmake/Qt6/")
48+
SET(Qt6Test_DIR "${QT_PATH}/lib/cmake/Qt6Test")
4949
ENDIF()
50-
find_package(Qt5 REQUIRED COMPONENTS Core)
51-
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
52-
get_filename_component(Qt5_BIN_DIR "${_qmake_executable}" DIRECTORY)
53-
TO_NATIVE_PATH("${Qt5_BIN_DIR}" Qt5_BIN_DIR)
50+
find_package(Qt6 REQUIRED COMPONENTS Core)
51+
get_target_property(_qmake_executable Qt6::qmake IMPORTED_LOCATION)
52+
get_filename_component(Qt6_BIN_DIR "${_qmake_executable}" DIRECTORY)
53+
TO_NATIVE_PATH("${Qt6_BIN_DIR}" Qt6_BIN_DIR)
5454

CMakeScripts/Windeployqt.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121
# SOFTWARE.
2222

23-
find_package(Qt5Core REQUIRED)
23+
find_package(Qt6 COMPONENTS Core REQUIRED)
2424

2525
# Retrieve the absolute path to qmake and then use that path to find
2626
# the windeployqt binary
27-
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
27+
get_target_property(_qmake_executable Qt6::qmake IMPORTED_LOCATION)
2828
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
2929
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}")
3030

SEGSLauncher/CMakeLists.txt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.1)
1+
cmake_minimum_required(VERSION 3.14)
22

33

44
project(SEGSLauncher LANGUAGES CXX)
@@ -7,14 +7,10 @@ project(SEGSLauncher LANGUAGES CXX)
77
set(CMAKE_INCLUDE_CURRENT_DIR ON)
88
set(CMAKE_AUTOMOC ON)
99
set(CMAKE_AUTORCC ON)
10-
#set(CMAKE_AUTOUIC ON)
1110

12-
find_package(Qt5 COMPONENTS Core Quick Multimedia REQUIRED)
11+
find_package(Qt6 COMPONENTS Core Quick Multimedia Network REQUIRED)
1312
set(CMAKE_DEBUG_POSTFIX "d")
1413

15-
#include_directories(${Qt5Widgets_INCLUDE_DIRS} ${QtQml_INCLUDE_DIRS})
16-
#add_definitions(${Qt5Widgets_DEFINITIONS} ${QtQml_DEFINITIONS} ${${Qt5Quick_DEFINITIONS}})
17-
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
1814

1915
set(SEGSLAUNCHER_SOURCES
2016
main.cpp
@@ -29,7 +25,7 @@ set(SEGSLAUNCHER_SOURCES
2925

3026
add_executable(${PROJECT_NAME} WIN32 ${SEGSLAUNCHER_SOURCES})
3127
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
32-
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::Multimedia jcon_IMP)
28+
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick Qt6::Multimedia Qt6::Network jcon_IMP)
3329

3430

3531
#message("Copying required Qt libraries and binaries to output directory....")

SEGSLauncher/Launcher.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
//#include "version.h"
21
#include "Launcher.h"
32
#include "Worker.h"
43

@@ -10,12 +9,15 @@
109
#include <QNetworkAccessManager>
1110
#include <QNetworkReply>
1211
#include <QJsonDocument>
12+
#include <QJsonArray>
1313
#include <QTimer>
1414
#include <QDir>
1515

1616

17+
const QVersionNumber Launcher::m_version = QVersionNumber(0,0,1);
1718
Launcher::Launcher(QObject *parent) : QObject(parent)
1819
{
20+
m_update_channel = "stable";
1921
// Worker thread for getting server status (RPC call)
2022
Worker *worker = new Worker;
2123
worker->moveToThread(&worker_thread);
@@ -37,8 +39,10 @@ void Launcher::launch_cox()
3739
settings.beginGroup("LauncherConfig");
3840
QString cox_dir = settings.value("CoxDir", "").toString();
3941
settings.endGroup();
40-
QStringList arguments;
41-
arguments<<"-project"<< "SEGS";
42+
QStringList arguments = {
43+
"-project",
44+
"SEGS"
45+
};
4246
QString program = cox_dir + "/CoX.exe";
4347

4448
m_start_cox = new QProcess(this);
@@ -52,7 +56,7 @@ void Launcher::launch_segsadmin()
5256

5357
m_start_segsadmin = new QProcess(this);
5458
m_start_segsadmin->setWorkingDirectory(QDir::currentPath());
55-
m_start_segsadmin->start(program);
59+
m_start_segsadmin->start(program,QStringList());
5660

5761
qDebug()<<"launch_segsadmin";
5862
}
@@ -118,7 +122,8 @@ void Launcher::set_server(QVariantMap server_details)
118122
settings.setValue("LastServerIP", server_details["server_ip"]);
119123
settings.endGroup();
120124

121-
QSettings segs_settings(QString("HKEY_CURRENT_USER\\Software\\Cryptic\\%1").arg("SEGS"), QSettings::NativeFormat);
125+
QSettings segs_settings(QString(R"(HKEY_CURRENT_USER\Software\Cryptic\%1)").arg("SEGS"),
126+
QSettings::NativeFormat);
122127
segs_settings.setValue("Auth", server_details["server_ip"]);
123128
}
124129

@@ -147,7 +152,7 @@ QJsonObject Launcher::get_server_list()
147152
settings.beginGroup("ServerConfig");
148153
settings.beginGroup("CommunityServers");
149154

150-
foreach (const QString &group, settings.childGroups())
155+
for(const QString &group : settings.childGroups())
151156
{
152157
QJsonObject server;
153158
settings.beginGroup(group);
@@ -164,7 +169,7 @@ QJsonObject Launcher::get_server_list()
164169
// Get local servers
165170
settings.beginGroup("LocalServers");
166171

167-
foreach (const QString &group, settings.childGroups())
172+
for(const QString &group : settings.childGroups())
168173
{
169174
QJsonObject server;
170175
settings.beginGroup(group);
@@ -194,7 +199,7 @@ QJsonObject Launcher::get_server_information()
194199
settings.beginGroup("ServerConfig");
195200
settings.beginGroup("CommunityServers");
196201

197-
foreach (const QString &group, settings.childGroups())
202+
for(const QString &group : settings.childGroups())
198203
{
199204
QJsonObject server;
200205
settings.beginGroup(group);
@@ -326,7 +331,8 @@ void Launcher::add_local_server(QVariantMap server)
326331
// Write launcher / game settings to QSettings
327332
void Launcher::set_launcher_game_settings(QVariantMap settings)
328333
{
329-
QSettings segs_settings(QString("HKEY_CURRENT_USER\\Software\\Cryptic\\%1").arg("SEGS"), QSettings::NativeFormat);
334+
QSettings segs_settings(QString(R"(HKEY_CURRENT_USER\Software\Cryptic\%1)").arg("SEGS"),
335+
QSettings::NativeFormat);
330336
segs_settings.setValue("screenX", settings["screenX"].toString());
331337
segs_settings.setValue("screenY", settings["screenY"].toString());
332338
segs_settings.setValue("fullscreen", settings["fullscreen"].toString());

0 commit comments

Comments
 (0)