fix: Allow Gui to work with core ,server or client binaries
fixes: #7951
This commit is contained in:
@ -1,8 +1,24 @@
|
||||
# SPDX-FileCopyrightText: (C) 2024 - 2025 Chris Rizzitello <sithlord48@gmail.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
if(BUILD_UNIFIED)
|
||||
set(CLIENT_BINARY "${CMAKE_PROJECT_NAME}-core")
|
||||
set(SERVER_BINARY "${CMAKE_PROJECT_NAME}-core")
|
||||
else()
|
||||
set(CLIENT_BINARY "${CMAKE_PROJECT_NAME}-client")
|
||||
set(SERVER_BINARY "${CMAKE_PROJECT_NAME}-server")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
string(APPEND CLIENT_BINARY ".exe")
|
||||
string(APPEND SERVER_BINARY ".exe")
|
||||
endif()
|
||||
|
||||
configure_file(Constants.h.in Constants.h @ONLY)
|
||||
|
||||
unset(CLIENT_BINARY)
|
||||
unset(SERVER_BINARY)
|
||||
|
||||
add_library(common STATIC
|
||||
Common.h
|
||||
Settings.h
|
||||
|
||||
@ -21,6 +21,10 @@ const auto kCopyright = //
|
||||
"Copyright (C) 2009-2012 Nick Bolton\n"
|
||||
"Copyright (C) 2002-2009 Chris Schoeneman";
|
||||
|
||||
|
||||
const auto kClientBinName = "@CLIENT_BINARY@";
|
||||
const auto kServerBinName = "@SERVER_BINARY@";
|
||||
|
||||
#ifndef NDEBUG
|
||||
const auto kDebugBuild = true;
|
||||
#else
|
||||
@ -44,13 +48,7 @@ const auto kWindowsRegistryKey = "SOFTWARE\\@CMAKE_PROJECT_PROPER_NAME@";
|
||||
const auto kCloseEventName = "Global\\@CMAKE_PROJECT_PROPER_NAME@Close";
|
||||
const auto kSendSasEventName = "Global\\@CMAKE_PROJECT_PROPER_NAME@SendSAS";
|
||||
|
||||
const auto kClientBinName = "@CMAKE_PROJECT_NAME@-client.exe";
|
||||
const auto kServerBinName = "@CMAKE_PROJECT_NAME@-server.exe";
|
||||
|
||||
#else
|
||||
|
||||
const auto kClientBinName = "@CMAKE_PROJECT_NAME@-client";
|
||||
const auto kServerBinName = "@CMAKE_PROJECT_NAME@-server";
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@ -330,6 +330,8 @@ void CoreProcess::handleLogLines(const QString &text)
|
||||
|
||||
void CoreProcess::start(std::optional<ProcessMode> processModeOption)
|
||||
{
|
||||
using enum Settings::CoreMode;
|
||||
|
||||
QMutexLocker locker(&m_processMutex);
|
||||
|
||||
const auto currentMode = Settings::value(Settings::Core::ProcessMode).value<ProcessMode>();
|
||||
@ -363,16 +365,28 @@ void CoreProcess::start(std::optional<ProcessMode> processModeOption)
|
||||
|
||||
QString app;
|
||||
QStringList args;
|
||||
|
||||
addGenericArgs(args, processMode);
|
||||
|
||||
if (mode() == Settings::CoreMode::Server && !addServerArgs(args, app)) {
|
||||
if (mode() == Server && !addServerArgs(args, app)) {
|
||||
qWarning("failed to add server args for core process, aborting start");
|
||||
return;
|
||||
} else if (mode() == Settings::CoreMode::Client && !addClientArgs(args, app)) {
|
||||
} else if (mode() == Client && !addClientArgs(args, app)) {
|
||||
qWarning("failed to add client args for core process, aborting start");
|
||||
return;
|
||||
}
|
||||
|
||||
if (app.endsWith("core") || app.endsWith("core.exe")) {
|
||||
if (mode() == Server) {
|
||||
args.prepend("server");
|
||||
} else if (mode() == Client) {
|
||||
args.prepend("client");
|
||||
} else {
|
||||
qFatal("core started without mode");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
qDebug().noquote() << "log level:" << Settings::logLevelText();
|
||||
|
||||
if (Settings::value(Settings::Log::ToFile).toBool())
|
||||
|
||||
Reference in New Issue
Block a user