feat(Cmake/Database): separate database lib from common (#5334)

* feat(Core/Database): separate databse lib from common

* 1
This commit is contained in:
Kargatum
2021-04-20 17:08:23 +07:00
committed by GitHub
parent 47378ad14d
commit a278fd7340
39 changed files with 82 additions and 8 deletions

View File

@@ -54,7 +54,6 @@ target_link_libraries(common
PUBLIC
acore-core-interface
ace
mysql
g3dlib
Detour
sfmt

View File

@@ -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)

View File

@@ -0,0 +1,58 @@
#
# Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, 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()

View File

@@ -9,9 +9,8 @@
#include "Common.h"
#include "Log.h"
#include <mysql.h>
#include <array>
#include <mysql.h>
class Field
{

View File

@@ -0,0 +1,19 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, 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 <mysql.h>
#include <string>
#include <vector>

View File

@@ -24,7 +24,7 @@ target_include_directories(shared
target_link_libraries(shared
PUBLIC
common)
database)
set_target_properties(shared
PROPERTIES

View File

@@ -20,8 +20,6 @@
#include <errno.h>
#endif
#include "Database/DatabaseEnv.h"
enum NavTerrain
{
NAV_EMPTY = 0x00,