From 7cac14550027cb25bbe7518eb7ba032dda62a293 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Mon, 18 Aug 2025 20:56:02 -0400 Subject: [PATCH] fix: Allow Gui to work with core ,server or client binaries fixes: #7951 --- src/lib/common/CMakeLists.txt | 16 ++++++++++++++++ src/lib/common/Constants.h.in | 14 ++++++-------- src/lib/gui/core/CoreProcess.cpp | 18 ++++++++++++++++-- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/lib/common/CMakeLists.txt b/src/lib/common/CMakeLists.txt index 6c32cfc96..fb937a8eb 100644 --- a/src/lib/common/CMakeLists.txt +++ b/src/lib/common/CMakeLists.txt @@ -1,8 +1,24 @@ # SPDX-FileCopyrightText: (C) 2024 - 2025 Chris Rizzitello # 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 diff --git a/src/lib/common/Constants.h.in b/src/lib/common/Constants.h.in index b784f92ce..5e006de68 100644 --- a/src/lib/common/Constants.h.in +++ b/src/lib/common/Constants.h.in @@ -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 + + diff --git a/src/lib/gui/core/CoreProcess.cpp b/src/lib/gui/core/CoreProcess.cpp index 78ed722eb..4fb6c88df 100644 --- a/src/lib/gui/core/CoreProcess.cpp +++ b/src/lib/gui/core/CoreProcess.cpp @@ -330,6 +330,8 @@ void CoreProcess::handleLogLines(const QString &text) void CoreProcess::start(std::optional processModeOption) { + using enum Settings::CoreMode; + QMutexLocker locker(&m_processMutex); const auto currentMode = Settings::value(Settings::Core::ProcessMode).value(); @@ -363,16 +365,28 @@ void CoreProcess::start(std::optional 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())