From e27a5b7816f50e4b4bfccc31b8e2088e358d22f5 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Wed, 10 Aug 2016 01:22:56 +0200 Subject: [PATCH] Core/Build: Provide an interface target for game * Increases the build time because dependent projects can build without waiting for the game project. --- src/server/game/CMakeLists.txt | 28 +++++++++++++++++---------- src/server/scripts/CMakeLists.txt | 2 +- src/server/worldserver/CMakeLists.txt | 1 + 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index 22ab85f498..202c078977 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -8,7 +8,6 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - CollectSourceFiles( ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE_SOURCES @@ -24,28 +23,37 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_definitions(-DTRINITY_API_EXPORT_GAME) -add_library(game - ${PRIVATE_SOURCES} - ${PRIVATE_PCH_SOURCE} -) - CollectIncludeDirectories( ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC_INCLUDES # Exclude ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) +# Provide an interface target for the game project to allow +# dependent projects to build meanwhile. +add_library(game-interface INTERFACE) + +target_include_directories(game-interface + INTERFACE + ${PUBLIC_INCLUDES}) + +target_link_libraries(game-interface + INTERFACE + shared + Detour) + +add_library(game + ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES}) + target_include_directories(game - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(game PUBLIC ipc - shared - Detour + game-interface PRIVATE efsw) diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index d0f639cb49..66968ef203 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -64,7 +64,7 @@ target_include_directories(scripts target_link_libraries(scripts PUBLIC - game) + game-interface) set_target_properties(scripts PROPERTIES diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index 7fb4c6d2b7..8a69d89b1e 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -48,6 +48,7 @@ set_target_properties(worldserver PROPERTIES LINK_FLAGS "${worldserver_LINK_FLAG target_link_libraries(worldserver PUBLIC scripts + game gsoap readline)