mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-10 09:28:06 +00:00
fix: object libs
This commit is contained in:
@@ -13,15 +13,24 @@ include_directories(
|
||||
${PROJECT_SOURCE_DIR}/dGame
|
||||
)
|
||||
|
||||
add_library(dGameBase ${DGAME_SOURCES})
|
||||
add_library(dGameBase OBJECT ${DGAME_SOURCES})
|
||||
target_precompile_headers(dGameBase PRIVATE ${HEADERS_DGAME})
|
||||
target_include_directories(dGameBase PUBLIC "." "dEntity"
|
||||
PRIVATE "dComponents" "dGameMessages" "dBehaviors" "dMission" "dUtilities" "dInventory"
|
||||
"${PROJECT_SOURCE_DIR}/dZoneManager"
|
||||
"${PROJECT_SOURCE_DIR}/dCommon"
|
||||
"${PROJECT_SOURCE_DIR}/dCommon/dEnums"
|
||||
"${PROJECT_SOURCE_DIR}/dCommon/dClient"
|
||||
# dDatabase
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/ITables"
|
||||
"${PROJECT_SOURCE_DIR}/thirdparty/mariadb-connector-cpp/include"
|
||||
# dPhysics
|
||||
"${PROJECT_SOURCE_DIR}/thirdparty/recastnavigation/Recast/Include"
|
||||
"${PROJECT_SOURCE_DIR}/thirdparty/recastnavigation/Detour/Include"
|
||||
"${PROJECT_SOURCE_DIR}/dZoneManager"
|
||||
)
|
||||
target_link_libraries(dGameBase
|
||||
PUBLIC dDatabase dPhysics
|
||||
INTERFACE dComponents dEntity)
|
||||
|
||||
add_subdirectory(dBehaviors)
|
||||
add_subdirectory(dComponents)
|
||||
@@ -32,7 +41,26 @@ add_subdirectory(dMission)
|
||||
add_subdirectory(dPropertyBehaviors)
|
||||
add_subdirectory(dUtilities)
|
||||
|
||||
add_library(dGame INTERFACE)
|
||||
target_link_libraries(dGame INTERFACE
|
||||
dGameBase dBehaviors dComponents dEntity dGameMessages dInventory dMission dPropertyBehaviors dUtilities dScripts
|
||||
add_library(dGame STATIC
|
||||
$<TARGET_OBJECTS:dGameBase>
|
||||
$<TARGET_OBJECTS:dBehaviors>
|
||||
$<TARGET_OBJECTS:dComponents>
|
||||
$<TARGET_OBJECTS:dEntity>
|
||||
$<TARGET_OBJECTS:dGameMessages>
|
||||
$<TARGET_OBJECTS:dInventory>
|
||||
$<TARGET_OBJECTS:dMission>
|
||||
$<TARGET_OBJECTS:dPropertyBehaviors>
|
||||
$<TARGET_OBJECTS:dUtilities>
|
||||
)
|
||||
target_link_libraries(dGame INTERFACE dNet)
|
||||
target_include_directories(dGame INTERFACE
|
||||
$<TARGET_PROPERTY:dGameBase,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dBehaviors,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dComponents,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dEntity,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dGameMessages,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dInventory,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dMission,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dPropertyBehaviors,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:dUtilities,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
@@ -56,7 +56,7 @@ set(DGAME_DBEHAVIORS_SOURCES "AirMovementBehavior.cpp"
|
||||
"VentureVisionBehavior.cpp"
|
||||
"VerifyBehavior.cpp")
|
||||
|
||||
add_library(dBehaviors STATIC ${DGAME_DBEHAVIORS_SOURCES})
|
||||
add_library(dBehaviors OBJECT ${DGAME_DBEHAVIORS_SOURCES})
|
||||
target_link_libraries(dBehaviors PUBLIC dDatabaseCDClient dPhysics)
|
||||
target_include_directories(dBehaviors PUBLIC "."
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dGameMessages" # via BehaviorContext.h
|
||||
|
@@ -49,12 +49,23 @@ set(DGAME_DCOMPONENTS_SOURCES
|
||||
"MiniGameControlComponent.cpp"
|
||||
)
|
||||
|
||||
add_library(dComponents STATIC ${DGAME_DCOMPONENTS_SOURCES})
|
||||
add_library(dComponents OBJECT ${DGAME_DCOMPONENTS_SOURCES})
|
||||
target_include_directories(dComponents PUBLIC "."
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dMission" # via MissionComponent.h
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dBehaviors" # via InventoryComponent.h
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dInventory" # via InventoryComponent.h
|
||||
PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}/dCommon"
|
||||
"${PROJECT_SOURCE_DIR}/dCommon/dEnums"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/ITables"
|
||||
"${PROJECT_SOURCE_DIR}/thirdparty/mariadb-connector-cpp/include"
|
||||
# dPhysics (via dpWorld.h)
|
||||
"${PROJECT_SOURCE_DIR}/thirdparty/recastnavigation/Recast/Include"
|
||||
"${PROJECT_SOURCE_DIR}/thirdparty/recastnavigation/Detour/Include"
|
||||
|
||||
"${PROJECT_SOURCE_DIR}/dScripts/02_server/Map/General" # PetDigServer.h
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dGameMessages" # direct
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dUtilities" # direct Loot.h
|
||||
@@ -62,6 +73,11 @@ target_include_directories(dComponents PUBLIC "."
|
||||
"${PROJECT_SOURCE_DIR}/dZoneManager" # via BouncerComponent.cpp, ActivityComponent.cpp
|
||||
)
|
||||
target_precompile_headers(dComponents REUSE_FROM dGameBase)
|
||||
target_link_libraries(dComponents
|
||||
PUBLIC dPhysics dDatabase
|
||||
INTERFACE dUtilities dCommon dBehaviors dChatFilter dMission dInventory)
|
||||
|
||||
# INTERFACE link w/o dependency
|
||||
#set_property(TARGET dComponents APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
# dUtilities dCommon dBehaviors dChatFilter dMission dInventory
|
||||
# dPhysics
|
||||
#)
|
||||
|
||||
target_link_libraries(dComponents INTERFACE dBehaviors)
|
@@ -2,6 +2,6 @@ set(DGAME_DENTITY_SOURCES
|
||||
"EntityCallbackTimer.cpp"
|
||||
"EntityTimer.cpp")
|
||||
|
||||
add_library(dEntity STATIC ${DGAME_DENTITY_SOURCES})
|
||||
add_library(dEntity OBJECT ${DGAME_DENTITY_SOURCES})
|
||||
target_include_directories(dEntity PUBLIC ".")
|
||||
target_precompile_headers(dEntity REUSE_FROM dGameBase)
|
||||
|
@@ -4,7 +4,7 @@ set(DGAME_DGAMEMESSAGES_SOURCES
|
||||
"PropertyDataMessage.cpp"
|
||||
"PropertySelectQueryProperty.cpp")
|
||||
|
||||
add_library(dGameMessages STATIC ${DGAME_DGAMEMESSAGES_SOURCES})
|
||||
add_library(dGameMessages OBJECT ${DGAME_DGAMEMESSAGES_SOURCES})
|
||||
target_link_libraries(dGameMessages
|
||||
PUBLIC dDatabase
|
||||
INTERFACE dGameBase # TradingManager
|
||||
|
@@ -5,11 +5,18 @@ set(DGAME_DINVENTORY_SOURCES
|
||||
"ItemSet.cpp"
|
||||
"ItemSetPassiveAbility.cpp")
|
||||
|
||||
add_library(dInventory STATIC ${DGAME_DINVENTORY_SOURCES})
|
||||
add_library(dInventory OBJECT ${DGAME_DINVENTORY_SOURCES})
|
||||
target_include_directories(dInventory PUBLIC "."
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dUtilities" # Item.h uses Preconditions.h
|
||||
"${PROJECT_SOURCE_DIR}/dCommon/eEnums" # Item.h uses dCommonVars.h
|
||||
PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}/dCommon"
|
||||
"${PROJECT_SOURCE_DIR}/dCommon/dEnums"
|
||||
"${PROJECT_SOURCE_DIR}/dCommon/dClient" # Item.cpp uses AssetManager
|
||||
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase"
|
||||
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables"
|
||||
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dGameMessages" # direct
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dComponents" # direct InventoryComponent.h
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dBehaviors" # via InventoryComponent.h
|
||||
@@ -17,5 +24,9 @@ target_include_directories(dInventory PUBLIC "."
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dMission" # via MissionComponent.h
|
||||
"${PROJECT_SOURCE_DIR}/dZoneManager" # via Item.cpp
|
||||
)
|
||||
target_link_libraries(dInventory PRIVATE dDatabaseCDClient INTERFACE dNet)
|
||||
target_precompile_headers(dInventory REUSE_FROM dGameBase)
|
||||
|
||||
# INTERFACE link w/o dependency
|
||||
#set_property(TARGET dInventory APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
# dNet dDatabaseCDClient
|
||||
#)
|
||||
|
@@ -3,7 +3,7 @@ set(DGAME_DMISSION_SOURCES
|
||||
"MissionPrerequisites.cpp"
|
||||
"MissionTask.cpp")
|
||||
|
||||
add_library(dMission STATIC ${DGAME_DMISSION_SOURCES})
|
||||
add_library(dMission OBJECT ${DGAME_DMISSION_SOURCES})
|
||||
target_link_libraries(dMission PUBLIC dDatabase)
|
||||
target_include_directories(dMission PUBLIC "."
|
||||
PRIVATE
|
||||
|
@@ -12,7 +12,7 @@ foreach(file ${DGAME_DPROPERTYBEHAVIORS_CONTROLBEHAVIORMESSAGES})
|
||||
set(DGAME_DPROPERTYBEHAVIORS_SOURCES ${DGAME_DPROPERTYBEHAVIORS_SOURCES} "ControlBehaviorMessages/${file}")
|
||||
endforeach()
|
||||
|
||||
add_library(dPropertyBehaviors STATIC ${DGAME_DPROPERTYBEHAVIORS_SOURCES})
|
||||
add_library(dPropertyBehaviors OBJECT ${DGAME_DPROPERTYBEHAVIORS_SOURCES})
|
||||
target_link_libraries(dPropertyBehaviors PRIVATE dDatabaseCDClient)
|
||||
target_include_directories(dPropertyBehaviors PUBLIC "." "ControlBehaviorMessages"
|
||||
PRIVATE
|
||||
@@ -21,3 +21,5 @@ target_include_directories(dPropertyBehaviors PUBLIC "." "ControlBehaviorMessage
|
||||
"${PROJECT_SOURCE_DIR}/dGame/dComponents" # ModelComponent.h
|
||||
)
|
||||
target_precompile_headers(dPropertyBehaviors REUSE_FROM dGameBase)
|
||||
|
||||
target_link_libraries(dPropertyBehaviors INTERFACE dComponents)
|
||||
|
@@ -8,7 +8,7 @@ set(DGAME_DUTILITIES_SOURCES "BrickDatabase.cpp"
|
||||
"SlashCommandHandler.cpp"
|
||||
"VanityUtilities.cpp")
|
||||
|
||||
add_library(dUtilities STATIC ${DGAME_DUTILITIES_SOURCES})
|
||||
add_library(dUtilities OBJECT ${DGAME_DUTILITIES_SOURCES})
|
||||
target_precompile_headers(dUtilities REUSE_FROM dGameBase)
|
||||
target_include_directories(dUtilities PUBLIC "."
|
||||
PRIVATE
|
||||
|
Reference in New Issue
Block a user