From a278fd734014a4e7c70a134ed9af43eae525b2e6 Mon Sep 17 00:00:00 2001 From: Kargatum Date: Tue, 20 Apr 2021 17:08:23 +0700 Subject: [PATCH] feat(Cmake/Database): separate database lib from common (#5334) * feat(Core/Database): separate databse lib from common * 1 --- src/common/CMakeLists.txt | 1 - src/server/CMakeLists.txt | 5 +- src/server/database/CMakeLists.txt | 58 +++++++++++++++++++ .../database}/Database/AdhocStatement.cpp | 0 .../database}/Database/AdhocStatement.h | 0 .../database/Database}/Callback.h | 0 .../database}/Database/DatabaseEnv.cpp | 0 .../database}/Database/DatabaseEnv.h | 0 .../database}/Database/DatabaseLoader.cpp | 0 .../database}/Database/DatabaseLoader.h | 0 .../database}/Database/DatabaseWorker.cpp | 0 .../database}/Database/DatabaseWorker.h | 0 .../database}/Database/DatabaseWorkerPool.cpp | 0 .../database}/Database/DatabaseWorkerPool.h | 0 .../database}/Database/Field.cpp | 0 .../database}/Database/Field.h | 3 +- .../Implementation/CharacterDatabase.cpp | 0 .../Implementation/CharacterDatabase.h | 0 .../Database/Implementation/LoginDatabase.cpp | 0 .../Database/Implementation/LoginDatabase.h | 0 .../Database/Implementation/WorldDatabase.cpp | 0 .../Database/Implementation/WorldDatabase.h | 0 .../database}/Database/MySQLConnection.cpp | 0 .../database}/Database/MySQLConnection.h | 0 .../database}/Database/MySQLThreading.h | 0 .../database}/Database/PreparedStatement.cpp | 0 .../database}/Database/PreparedStatement.h | 0 .../database}/Database/QueryHolder.cpp | 0 .../database}/Database/QueryHolder.h | 0 .../database}/Database/QueryResult.cpp | 0 .../database}/Database/QueryResult.h | 0 .../database}/Database/SQLOperation.h | 0 .../database}/Database/Transaction.cpp | 0 .../database}/Database/Transaction.h | 0 .../database}/Logging/AppenderDB.cpp | 0 .../database}/Logging/AppenderDB.h | 0 .../database/PrecompiledHeaders/databasePCH.h | 19 ++++++ src/server/shared/CMakeLists.txt | 2 +- src/tools/mmaps_generator/PathCommon.h | 2 - 39 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 src/server/database/CMakeLists.txt rename src/{common => server/database}/Database/AdhocStatement.cpp (100%) rename src/{common => server/database}/Database/AdhocStatement.h (100%) rename src/{common/Threading => server/database/Database}/Callback.h (100%) rename src/{common => server/database}/Database/DatabaseEnv.cpp (100%) rename src/{common => server/database}/Database/DatabaseEnv.h (100%) rename src/{common => server/database}/Database/DatabaseLoader.cpp (100%) rename src/{common => server/database}/Database/DatabaseLoader.h (100%) rename src/{common => server/database}/Database/DatabaseWorker.cpp (100%) rename src/{common => server/database}/Database/DatabaseWorker.h (100%) rename src/{common => server/database}/Database/DatabaseWorkerPool.cpp (100%) rename src/{common => server/database}/Database/DatabaseWorkerPool.h (100%) rename src/{common => server/database}/Database/Field.cpp (100%) rename src/{common => server/database}/Database/Field.h (99%) rename src/{common => server/database}/Database/Implementation/CharacterDatabase.cpp (100%) rename src/{common => server/database}/Database/Implementation/CharacterDatabase.h (100%) rename src/{common => server/database}/Database/Implementation/LoginDatabase.cpp (100%) rename src/{common => server/database}/Database/Implementation/LoginDatabase.h (100%) rename src/{common => server/database}/Database/Implementation/WorldDatabase.cpp (100%) rename src/{common => server/database}/Database/Implementation/WorldDatabase.h (100%) rename src/{common => server/database}/Database/MySQLConnection.cpp (100%) rename src/{common => server/database}/Database/MySQLConnection.h (100%) rename src/{common => server/database}/Database/MySQLThreading.h (100%) rename src/{common => server/database}/Database/PreparedStatement.cpp (100%) rename src/{common => server/database}/Database/PreparedStatement.h (100%) rename src/{common => server/database}/Database/QueryHolder.cpp (100%) rename src/{common => server/database}/Database/QueryHolder.h (100%) rename src/{common => server/database}/Database/QueryResult.cpp (100%) rename src/{common => server/database}/Database/QueryResult.h (100%) rename src/{common => server/database}/Database/SQLOperation.h (100%) rename src/{common => server/database}/Database/Transaction.cpp (100%) rename src/{common => server/database}/Database/Transaction.h (100%) rename src/{common/Database => server/database}/Logging/AppenderDB.cpp (100%) rename src/{common/Database => server/database}/Logging/AppenderDB.h (100%) create mode 100644 src/server/database/PrecompiledHeaders/databasePCH.h diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index ae8c21fba..d06edcaf3 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -54,7 +54,6 @@ target_link_libraries(common PUBLIC acore-core-interface ace - mysql g3dlib Detour sfmt diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index ee9271ddd..46ea70c65 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -22,8 +22,9 @@ set(winService ${CMAKE_SOURCE_DIR}/src/common/Platform/ServiceWin32.h) endif() -add_subdirectory(shared) -add_subdirectory(game) add_subdirectory(authserver) +add_subdirectory(database) +add_subdirectory(game) +add_subdirectory(shared) add_subdirectory(scripts) add_subdirectory(worldserver) diff --git a/src/server/database/CMakeLists.txt b/src/server/database/CMakeLists.txt new file mode 100644 index 000000000..1e71108e8 --- /dev/null +++ b/src/server/database/CMakeLists.txt @@ -0,0 +1,58 @@ +# +# Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 +# + +CollectSourceFiles( + ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE_SOURCES + # Exclude + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) + +if(USE_COREPCH) + set(PRIVATE_PCH_HEADER PrecompiledHeaders/databasePCH.h) +endif() + +# Group sources +GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) + +add_library(database + ${PRIVATE_SOURCES}) + +# Do NOT add any extra include directory unless it does not create unneeded extra dependencies, +# and specially, not add any dependency to neither of these: shared, game, scripts +# This way we ensure that if either a PR does that without modifying this file, +# a compile error will be generated, either this file will be modified so it +# is detected more easily. +# While it is OK to include files from other libs as long as they don't require +# linkage (enums, defines...) it is discouraged to do so unless necessary, as it will pullute +# include_directories leading to further unnoticed dependency aditions +# Linker Depencency requirements: common +CollectIncludeDirectories( + ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC_INCLUDES + # Exclude + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) + +target_include_directories(database + PUBLIC + ${PUBLIC_INCLUDES} + PRIVATE + ${CMAKE_CURRENT_BINARY_DIR}) + +target_link_libraries(database + # PRIVATE + # acore-core-interface + # mysql + PUBLIC + common + mysql) + +set_target_properties(database + PROPERTIES + FOLDER + "server") + +# Generate precompiled header +if(USE_COREPCH) + add_cxx_pch(database ${PRIVATE_PCH_HEADER}) +endif() diff --git a/src/common/Database/AdhocStatement.cpp b/src/server/database/Database/AdhocStatement.cpp similarity index 100% rename from src/common/Database/AdhocStatement.cpp rename to src/server/database/Database/AdhocStatement.cpp diff --git a/src/common/Database/AdhocStatement.h b/src/server/database/Database/AdhocStatement.h similarity index 100% rename from src/common/Database/AdhocStatement.h rename to src/server/database/Database/AdhocStatement.h diff --git a/src/common/Threading/Callback.h b/src/server/database/Database/Callback.h similarity index 100% rename from src/common/Threading/Callback.h rename to src/server/database/Database/Callback.h diff --git a/src/common/Database/DatabaseEnv.cpp b/src/server/database/Database/DatabaseEnv.cpp similarity index 100% rename from src/common/Database/DatabaseEnv.cpp rename to src/server/database/Database/DatabaseEnv.cpp diff --git a/src/common/Database/DatabaseEnv.h b/src/server/database/Database/DatabaseEnv.h similarity index 100% rename from src/common/Database/DatabaseEnv.h rename to src/server/database/Database/DatabaseEnv.h diff --git a/src/common/Database/DatabaseLoader.cpp b/src/server/database/Database/DatabaseLoader.cpp similarity index 100% rename from src/common/Database/DatabaseLoader.cpp rename to src/server/database/Database/DatabaseLoader.cpp diff --git a/src/common/Database/DatabaseLoader.h b/src/server/database/Database/DatabaseLoader.h similarity index 100% rename from src/common/Database/DatabaseLoader.h rename to src/server/database/Database/DatabaseLoader.h diff --git a/src/common/Database/DatabaseWorker.cpp b/src/server/database/Database/DatabaseWorker.cpp similarity index 100% rename from src/common/Database/DatabaseWorker.cpp rename to src/server/database/Database/DatabaseWorker.cpp diff --git a/src/common/Database/DatabaseWorker.h b/src/server/database/Database/DatabaseWorker.h similarity index 100% rename from src/common/Database/DatabaseWorker.h rename to src/server/database/Database/DatabaseWorker.h diff --git a/src/common/Database/DatabaseWorkerPool.cpp b/src/server/database/Database/DatabaseWorkerPool.cpp similarity index 100% rename from src/common/Database/DatabaseWorkerPool.cpp rename to src/server/database/Database/DatabaseWorkerPool.cpp diff --git a/src/common/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h similarity index 100% rename from src/common/Database/DatabaseWorkerPool.h rename to src/server/database/Database/DatabaseWorkerPool.h diff --git a/src/common/Database/Field.cpp b/src/server/database/Database/Field.cpp similarity index 100% rename from src/common/Database/Field.cpp rename to src/server/database/Database/Field.cpp diff --git a/src/common/Database/Field.h b/src/server/database/Database/Field.h similarity index 99% rename from src/common/Database/Field.h rename to src/server/database/Database/Field.h index c996b3fb1..e4055652b 100644 --- a/src/common/Database/Field.h +++ b/src/server/database/Database/Field.h @@ -9,9 +9,8 @@ #include "Common.h" #include "Log.h" - -#include #include +#include class Field { diff --git a/src/common/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp similarity index 100% rename from src/common/Database/Implementation/CharacterDatabase.cpp rename to src/server/database/Database/Implementation/CharacterDatabase.cpp diff --git a/src/common/Database/Implementation/CharacterDatabase.h b/src/server/database/Database/Implementation/CharacterDatabase.h similarity index 100% rename from src/common/Database/Implementation/CharacterDatabase.h rename to src/server/database/Database/Implementation/CharacterDatabase.h diff --git a/src/common/Database/Implementation/LoginDatabase.cpp b/src/server/database/Database/Implementation/LoginDatabase.cpp similarity index 100% rename from src/common/Database/Implementation/LoginDatabase.cpp rename to src/server/database/Database/Implementation/LoginDatabase.cpp diff --git a/src/common/Database/Implementation/LoginDatabase.h b/src/server/database/Database/Implementation/LoginDatabase.h similarity index 100% rename from src/common/Database/Implementation/LoginDatabase.h rename to src/server/database/Database/Implementation/LoginDatabase.h diff --git a/src/common/Database/Implementation/WorldDatabase.cpp b/src/server/database/Database/Implementation/WorldDatabase.cpp similarity index 100% rename from src/common/Database/Implementation/WorldDatabase.cpp rename to src/server/database/Database/Implementation/WorldDatabase.cpp diff --git a/src/common/Database/Implementation/WorldDatabase.h b/src/server/database/Database/Implementation/WorldDatabase.h similarity index 100% rename from src/common/Database/Implementation/WorldDatabase.h rename to src/server/database/Database/Implementation/WorldDatabase.h diff --git a/src/common/Database/MySQLConnection.cpp b/src/server/database/Database/MySQLConnection.cpp similarity index 100% rename from src/common/Database/MySQLConnection.cpp rename to src/server/database/Database/MySQLConnection.cpp diff --git a/src/common/Database/MySQLConnection.h b/src/server/database/Database/MySQLConnection.h similarity index 100% rename from src/common/Database/MySQLConnection.h rename to src/server/database/Database/MySQLConnection.h diff --git a/src/common/Database/MySQLThreading.h b/src/server/database/Database/MySQLThreading.h similarity index 100% rename from src/common/Database/MySQLThreading.h rename to src/server/database/Database/MySQLThreading.h diff --git a/src/common/Database/PreparedStatement.cpp b/src/server/database/Database/PreparedStatement.cpp similarity index 100% rename from src/common/Database/PreparedStatement.cpp rename to src/server/database/Database/PreparedStatement.cpp diff --git a/src/common/Database/PreparedStatement.h b/src/server/database/Database/PreparedStatement.h similarity index 100% rename from src/common/Database/PreparedStatement.h rename to src/server/database/Database/PreparedStatement.h diff --git a/src/common/Database/QueryHolder.cpp b/src/server/database/Database/QueryHolder.cpp similarity index 100% rename from src/common/Database/QueryHolder.cpp rename to src/server/database/Database/QueryHolder.cpp diff --git a/src/common/Database/QueryHolder.h b/src/server/database/Database/QueryHolder.h similarity index 100% rename from src/common/Database/QueryHolder.h rename to src/server/database/Database/QueryHolder.h diff --git a/src/common/Database/QueryResult.cpp b/src/server/database/Database/QueryResult.cpp similarity index 100% rename from src/common/Database/QueryResult.cpp rename to src/server/database/Database/QueryResult.cpp diff --git a/src/common/Database/QueryResult.h b/src/server/database/Database/QueryResult.h similarity index 100% rename from src/common/Database/QueryResult.h rename to src/server/database/Database/QueryResult.h diff --git a/src/common/Database/SQLOperation.h b/src/server/database/Database/SQLOperation.h similarity index 100% rename from src/common/Database/SQLOperation.h rename to src/server/database/Database/SQLOperation.h diff --git a/src/common/Database/Transaction.cpp b/src/server/database/Database/Transaction.cpp similarity index 100% rename from src/common/Database/Transaction.cpp rename to src/server/database/Database/Transaction.cpp diff --git a/src/common/Database/Transaction.h b/src/server/database/Database/Transaction.h similarity index 100% rename from src/common/Database/Transaction.h rename to src/server/database/Database/Transaction.h diff --git a/src/common/Database/Logging/AppenderDB.cpp b/src/server/database/Logging/AppenderDB.cpp similarity index 100% rename from src/common/Database/Logging/AppenderDB.cpp rename to src/server/database/Logging/AppenderDB.cpp diff --git a/src/common/Database/Logging/AppenderDB.h b/src/server/database/Logging/AppenderDB.h similarity index 100% rename from src/common/Database/Logging/AppenderDB.h rename to src/server/database/Logging/AppenderDB.h diff --git a/src/server/database/PrecompiledHeaders/databasePCH.h b/src/server/database/PrecompiledHeaders/databasePCH.h new file mode 100644 index 000000000..34a41616a --- /dev/null +++ b/src/server/database/PrecompiledHeaders/databasePCH.h @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + */ + +#include "Define.h" +// #include "DatabaseEnvFwd.h" +#include "Errors.h" +#include "Field.h" +#include "Log.h" +#include "MySQLConnection.h" +// #include "MySQLPreparedStatement.h" +// #include "MySQLWorkaround.h" +#include "PreparedStatement.h" +#include "QueryResult.h" +#include "SQLOperation.h" +#include "Transaction.h" +#include +#include +#include diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index 33742f343..df64c337a 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -24,7 +24,7 @@ target_include_directories(shared target_link_libraries(shared PUBLIC - common) + database) set_target_properties(shared PROPERTIES diff --git a/src/tools/mmaps_generator/PathCommon.h b/src/tools/mmaps_generator/PathCommon.h index 36e497421..7aae07448 100644 --- a/src/tools/mmaps_generator/PathCommon.h +++ b/src/tools/mmaps_generator/PathCommon.h @@ -20,8 +20,6 @@ #include #endif -#include "Database/DatabaseEnv.h" - enum NavTerrain { NAV_EMPTY = 0x00,