Turn Card, Deck_List, Protocol, RNG, Network (Client, Server), Settings and Utility into libraries and remove cockatrice_common. (#6212)

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
This commit is contained in:
BruebachL 2025-10-09 07:36:12 +02:00 committed by GitHub
parent be1403c920
commit 1ef07309d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
605 changed files with 3812 additions and 3408 deletions

View file

@ -1,15 +1,21 @@
# CMakeLists for oracle directory
#
# provides the oracle binary
cmake_minimum_required(VERSION 3.16)
project(Oracle VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
# paths
# ------------------------
# Paths and directories
# ------------------------
set(DESKTOPDIR
share/applications
CACHE STRING "path to .desktop files"
)
set(ORACLE_MAC_QM_INSTALL_DIR "oracle.app/Contents/Resources/translations")
set(ORACLE_UNIX_QM_INSTALL_DIR "share/oracle/translations")
set(ORACLE_WIN32_QM_INSTALL_DIR "translations")
# ------------------------
# Sources
# ------------------------
set(oracle_SOURCES
src/main.cpp
src/oraclewizard.cpp
@ -17,34 +23,16 @@ set(oracle_SOURCES
src/pagetemplates.cpp
src/parsehelpers.cpp
src/qt-json/json.cpp
../cockatrice/src/card/card_info.cpp
../cockatrice/src/card/card_relation.cpp
../cockatrice/src/card/card_set.cpp
../cockatrice/src/card/printing_info.cpp
../cockatrice/src/client/network/release_channel.cpp
../cockatrice/src/database/parser/card_database_parser.cpp
../cockatrice/src/database/parser/cockatrice_xml_3.cpp
../cockatrice/src/database/parser/cockatrice_xml_4.cpp
../cockatrice/src/interface/theme_manager.cpp
../cockatrice/src/interface/widgets/quick_settings/settings_button_widget.cpp
../cockatrice/src/interface/widgets/quick_settings/settings_popup_widget.cpp
../cockatrice/src/settings/cache_settings.cpp
../cockatrice/src/settings/card_counter_settings.cpp
../cockatrice/src/settings/card_database_settings.cpp
../cockatrice/src/settings/card_override_settings.cpp
../cockatrice/src/settings/debug_settings.cpp
../cockatrice/src/settings/download_settings.cpp
../cockatrice/src/settings/game_filters_settings.cpp
../cockatrice/src/settings/layouts_settings.cpp
../cockatrice/src/settings/message_settings.cpp
../cockatrice/src/settings/recents_settings.cpp
../cockatrice/src/settings/servers_settings.cpp
../cockatrice/src/settings/settings_manager.cpp
../cockatrice/src/settings/shortcuts_settings.cpp
${VERSION_STRING_CPP}
)
set(oracle_RESOURCES oracle.qrc)
# ------------------------
# Translations
# ------------------------
if(UPDATE_TRANSLATIONS)
file(GLOB_RECURSE translate_oracle_SRCS src/*.cpp src/*.h ../cockatrice/src/settingscache.cpp)
@ -66,37 +54,49 @@ if(APPLE)
set(oracle_SOURCES ${oracle_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
endif(APPLE)
set(oracle_RESOURCES oracle.qrc)
# ------------------------
# Qt resources
# ------------------------
if(Qt6_FOUND)
qt6_add_resources(oracle_RESOURCES_RCC ${oracle_RESOURCES})
elseif(Qt5_FOUND)
qt5_add_resources(oracle_RESOURCES_RCC ${oracle_RESOURCES})
endif()
# ------------------------
# Include directories
# ------------------------
include_directories(../cockatrice/src)
include_directories(../common)
# Libz is required to support zipped files
# ------------------------
# Optional libraries
# ------------------------
# ZLIB
find_package(ZLIB)
if(ZLIB_FOUND)
include_directories(${ZLIB_INCLUDE_DIRS})
add_definitions("-DHAS_ZLIB")
set(oracle_SOURCES ${oracle_SOURCES} src/zip/unzip.cpp src/zip/zipglobal.cpp)
list(APPEND oracle_SOURCES src/zip/unzip.cpp src/zip/zipglobal.cpp)
else()
message(STATUS "Oracle: zlib not found; ZIP support disabled")
endif()
# LibLZMA is required to support xz files
# LZMA
find_package(LibLZMA)
if(LIBLZMA_FOUND)
include_directories(${LIBLZMA_INCLUDE_DIRS})
add_definitions("-DHAS_LZMA")
set(oracle_SOURCES ${oracle_SOURCES} src/lzma/decompress.cpp)
list(APPEND oracle_SOURCES src/lzma/decompress.cpp)
else()
message(STATUS "Oracle: LibLZMA not found; xz support disabled")
endif()
# ------------------------
# Build executable
# ------------------------
set(ORACLE_MAC_QM_INSTALL_DIR "oracle.app/Contents/Resources/translations")
set(ORACLE_UNIX_QM_INSTALL_DIR "share/oracle/translations")
set(ORACLE_WIN32_QM_INSTALL_DIR "translations")
@ -133,7 +133,15 @@ elseif(Qt5_FOUND)
endif()
endif()
target_link_libraries(oracle PUBLIC ${ORACLE_QT_MODULES})
# ------------------------
# Link libraries
# ------------------------
target_link_libraries(
oracle
PUBLIC libcockatrice_card
PUBLIC libcockatrice_settings
PUBLIC ${ORACLE_QT_MODULES}
)
if(ZLIB_FOUND)
target_link_libraries(oracle PUBLIC ${ZLIB_LIBRARIES})
@ -143,6 +151,9 @@ if(LIBLZMA_FOUND)
target_link_libraries(oracle PUBLIC ${LIBLZMA_LIBRARIES})
endif()
# ------------------------
# Install rules
# ------------------------
if(UNIX)
if(APPLE)
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
@ -168,6 +179,9 @@ if(NOT WIN32 AND NOT APPLE)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/oracle.desktop DESTINATION ${DESKTOPDIR})
endif(NOT WIN32 AND NOT APPLE)
# ------------------------
# Qt plugin handling
# ------------------------
if(APPLE)
# these needs to be relative to CMAKE_INSTALL_PREFIX
set(plugin_dest_dir oracle.app/Contents/Plugins)
@ -262,6 +276,9 @@ Translations = Resources/translations\")
)
endif()
# ------------------------
# Qt translations
# ------------------------
if(Qt6_FOUND AND Qt6LinguistTools_FOUND)
#Qt6 Translations happen after the executable is built up
if(UPDATE_TRANSLATIONS)

View file

@ -2,7 +2,6 @@
#include "interface/theme_manager.h"
#include "oraclewizard.h"
#include "settings/cache_settings.h"
#include <QApplication>
#include <QCommandLineParser>
@ -10,6 +9,7 @@
#include <QLibraryInfo>
#include <QTimer>
#include <QTranslator>
#include <libcockatrice/settings/cache_settings.h>
QTranslator *translator, *qtTranslator;
ThemeManager *themeManager;

View file

@ -1,14 +1,14 @@
#include "oracleimporter.h"
#include "database/parser/cockatrice_xml_4.h"
#include "parsehelpers.h"
#include "qt-json/json.h"
#include <QDebug>
#include <QRegularExpression>
#include <algorithm>
#include <card/card_relation.h>
#include <climits>
#include <libcockatrice/card/card_database/parser/cockatrice_xml_4.h>
#include <libcockatrice/card/card_relation/card_relation.h>
SplitCardPart::SplitCardPart(const QString &_name,
const QString &_text,

View file

@ -4,7 +4,7 @@
#include <QMap>
#include <QRegularExpression>
#include <QVariant>
#include <card/card_info.h>
#include <libcockatrice/card/card_info.h>
#include <utility>
// many users prefer not to see these sets with non english arts

View file

@ -2,7 +2,6 @@
#include "main.h"
#include "oracleimporter.h"
#include "settings/cache_settings.h"
#include "version_string.h"
#include <QAbstractButton>
@ -25,6 +24,7 @@
#include <QTextEdit>
#include <QtConcurrent>
#include <QtGui>
#include <libcockatrice/settings/cache_settings.h>
#ifdef HAS_LZMA
#include "lzma/decompress.h"