From 482beafefb9c50e5c1d3d16fd69b88cf2c9e84db Mon Sep 17 00:00:00 2001 From: flaviojs Date: Wed, 6 Jul 2011 20:40:38 +0000 Subject: * CMake: src/common builds static libraries common_base/common_sql, that are used as dependencies by the other targets. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14889 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char/CMakeLists.txt | 88 +++++++++++----------------- src/char_sql/CMakeLists.txt | 98 +++++++++++++------------------ src/common/CMakeLists.txt | 135 +++++++++++++++++++++++++++++++++++++++---- src/login/CMakeLists.txt | 38 +----------- src/login/sql/CMakeLists.txt | 46 +++++++++------ src/login/txt/CMakeLists.txt | 46 +++++++++------ src/map/CMakeLists.txt | 67 +-------------------- src/map/sql/CMakeLists.txt | 108 ++++++++++++++++++++++++++++------ src/map/txt/CMakeLists.txt | 108 ++++++++++++++++++++++++++++------ src/tool/CMakeLists.txt | 34 +++++++---- 10 files changed, 456 insertions(+), 312 deletions(-) (limited to 'src') diff --git a/src/char/CMakeLists.txt b/src/char/CMakeLists.txt index 5c2d66c3c..1f6f1ea11 100644 --- a/src/char/CMakeLists.txt +++ b/src/char/CMakeLists.txt @@ -1,70 +1,50 @@ # -# setup +# char txt # -set( MT19937AR_SOURCES -# "${MT19937AR_SOURCE_DIR}/mt19937ar.c" - ) -set( COMMON_SOURCES - "${COMMON_SOURCE_DIR}/core.c" - "${COMMON_SOURCE_DIR}/db.c" - "${COMMON_SOURCE_DIR}/ers.c" -# "${COMMON_SOURCE_DIR}/grfio.c" - "${COMMON_SOURCE_DIR}/lock.c" - "${COMMON_SOURCE_DIR}/malloc.c" - "${COMMON_SOURCE_DIR}/mapindex.c" -# "${COMMON_SOURCE_DIR}/md5calc.c" -# "${COMMON_SOURCE_DIR}/nullpo.c" - "${COMMON_SOURCE_DIR}/plugins.c" -# "${COMMON_SOURCE_DIR}/random.c" - "${COMMON_SOURCE_DIR}/showmsg.c" - "${COMMON_SOURCE_DIR}/socket.c" - "${COMMON_SOURCE_DIR}/strlib.c" - "${COMMON_SOURCE_DIR}/timer.c" - "${COMMON_SOURCE_DIR}/utils.c" +if( HAVE_common_base ) +message( STATUS "Creating target char-server" ) +set( TXT_CHAR_HEADERS + "${CMAKE_CURRENT_SOURCE_DIR}/char.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_guild.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_homun.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_party.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_pet.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_status.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_storage.h" + "${CMAKE_CURRENT_SOURCE_DIR}/inter.h" ) -set( CHAR_SOURCES - "char.c" - "int_guild.c" - "int_homun.c" - "int_party.c" - "int_pet.c" - "int_status.c" - "int_storage.c" - "inter.c" +set( TXT_CHAR_SOURCES + "${CMAKE_CURRENT_SOURCE_DIR}/char.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_guild.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_homun.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_party.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_pet.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_status.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_storage.c" + "${CMAKE_CURRENT_SOURCE_DIR}/inter.c" ) - - -# -# char txt -# -if( USE_ZLIB ) -message ( STATUS "Creating target char-server" ) -set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${COMMON_INCLUDE_DIRS} ) +set( DEPENDENCIES common_base ) +set( LIBRARIES ${GLOBAL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) set( DEFINITIONS ${GLOBAL_DEFINITIONS} TXT_ONLY ) -if( PACKETVER ) - message( STATUS "Using PACKETVER=${PACKETVER}" ) - list( APPEND DEFINITIONS PACKETVER=${PACKETVER} ) -endif() -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${MT19937AR_SOURCES} ${COMMON_SOURCES} ${CHAR_SOURCES} ) -source_group( 3rdparty FILES ${MT19937AR_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ) -source_group( char FILES ${CHAR_SOURCES} ) +set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${TXT_CHAR_HEADERS} ${TXT_CHAR_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ) +source_group( char FILES ${TXT_CHAR_HEADERS} ${TXT_CHAR_SOURCES} ) include_directories( ${INCLUDE_DIRS} ) add_executable( char-server ${SOURCE_FILES} ) -target_link_libraries( char-server ${LIBRARIES} ) +add_dependencies( char-server ${DEPENDENCIES} ) +target_link_libraries( char-server ${LIBRARIES} ${DEPENDENCIES} ) set_target_properties( char-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) if( INSTALL_RUN_DATA ) install( TARGETS char-server DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "char-server" ) endif() -message ( STATUS "Creating target char-server - done" ) +message( STATUS "Creating target char-server - done" ) +set( HAVE_char-server ON CACHE BOOL "char-server target is available" ) +mark_as_advanced( HAVE_char-server ) else() -message ( STATUS "Skipping target char-server (requires ZLIB)" ) +message( STATUS "Skipping target char-server (requires common_base)" ) +unset( HAVE_char-server CACHE ) endif() diff --git a/src/char_sql/CMakeLists.txt b/src/char_sql/CMakeLists.txt index 412393b21..7d3b7ad7e 100644 --- a/src/char_sql/CMakeLists.txt +++ b/src/char_sql/CMakeLists.txt @@ -1,74 +1,56 @@ # -# setup +# char sql # -set( MT19937AR_SOURCES -# "${MT19937AR_SOURCE_DIR}/mt19937ar.c" - ) -set( COMMON_SOURCES - "${COMMON_SOURCE_DIR}/core.c" - "${COMMON_SOURCE_DIR}/db.c" - "${COMMON_SOURCE_DIR}/ers.c" -# "${COMMON_SOURCE_DIR}/grfio.c" -# "${COMMON_SOURCE_DIR}/lock.c" - "${COMMON_SOURCE_DIR}/malloc.c" - "${COMMON_SOURCE_DIR}/mapindex.c" -# "${COMMON_SOURCE_DIR}/md5calc.c" -# "${COMMON_SOURCE_DIR}/nullpo.c" - "${COMMON_SOURCE_DIR}/plugins.c" -# "${COMMON_SOURCE_DIR}/random.c" - "${COMMON_SOURCE_DIR}/showmsg.c" - "${COMMON_SOURCE_DIR}/socket.c" - "${COMMON_SOURCE_DIR}/sql.c" - "${COMMON_SOURCE_DIR}/strlib.c" - "${COMMON_SOURCE_DIR}/timer.c" - "${COMMON_SOURCE_DIR}/utils.c" +if( HAVE_common_sql ) +message( STATUS "Creating target char-server_sql" ) +set( SQL_CHAR_HEADERS + "${CMAKE_CURRENT_SOURCE_DIR}/char.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_auction.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_guild.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_homun.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_mail.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_mercenary.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_party.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_pet.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_quest.h" + "${CMAKE_CURRENT_SOURCE_DIR}/int_storage.h" + "${CMAKE_CURRENT_SOURCE_DIR}/inter.h" ) -set( CHAR_SOURCES - "char.c" - "int_auction.c" - "int_guild.c" - "int_homun.c" - "int_mail.c" - "int_mercenary.c" - "int_party.c" - "int_pet.c" - "int_quest.c" - "int_storage.c" - "inter.c" +set( SQL_CHAR_SOURCES + "${CMAKE_CURRENT_SOURCE_DIR}/char.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_auction.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_guild.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_homun.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_mail.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_mercenary.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_party.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_pet.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_quest.c" + "${CMAKE_CURRENT_SOURCE_DIR}/int_storage.c" + "${CMAKE_CURRENT_SOURCE_DIR}/inter.c" ) - - -# -# char sql -# -if( USE_ZLIB AND USE_MYSQL ) -message ( STATUS "Creating target char-server_sql" ) -set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ${MYSQL_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} ${COMMON_INCLUDE_DIRS} ) +set( DEPENDENCIES common_sql ) +set( LIBRARIES ${GLOBAL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) set( DEFINITIONS ${GLOBAL_DEFINITIONS} ) -if( PACKETVER ) - message( STATUS "Using PACKETVER=${PACKETVER}" ) - list( APPEND DEFINITIONS PACKETVER=${PACKETVER} ) -endif() -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${MT19937AR_SOURCES} ${COMMON_SOURCES} ${CHAR_SOURCES} ) -source_group( 3rdparty FILES ${MT19937AR_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ) -source_group( char FILES ${CHAR_SOURCES} ) +set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${COMMON_SQL_HEADERS} ${SQL_CHAR_HEADERS} ${SQL_CHAR_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ${COMMON_SQL_HEADERS} ) +source_group( char FILES ${SQL_CHAR_HEADERS} ${SQL_CHAR_SOURCES} ) include_directories( ${INCLUDE_DIRS} ) add_executable( char-server_sql ${SOURCE_FILES} ) -target_link_libraries( char-server_sql ${LIBRARIES} ) +add_dependencies( char-server_sql ${DEPENDENCIES} ) +target_link_libraries( char-server_sql ${LIBRARIES} ${DEPENDENCIES} ) set_target_properties( char-server_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) if( INSTALL_RUN_DATA ) install( TARGETS char-server_sql DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "char-server_sql" ) endif() -message ( STATUS "Creating target char-server_sql - done" ) +message( STATUS "Creating target char-server_sql - done" ) +set( HAVE_char-server_sql ON CACHE BOOL "char-server_sql target is available" ) +mark_as_advanced( HAVE_char-server_sql ) else() -message ( STATUS "Skipping target char-server_sql (requires ZLIB and MYSQL)" ) +message( STATUS "Skipping target char-server_sql (requires common_sql)" ) +unset( HAVE_char-server_sql CACHE ) endif() diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 7a4443abc..0241dfbca 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -1,13 +1,5 @@ -set( COMMON_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" - CACHE PATH "common include directories" ) -set( COMMON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - CACHE PATH "common source directory" ) -mark_as_advanced( COMMON_INCLUDE_DIRS ) -mark_as_advanced( COMMON_SOURCE_DIR ) - - -# +##################################################################### # Find svnversion # message( STATUS "Detecting svnversion" ) @@ -31,10 +23,133 @@ if( SVNVERSION ) else() file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h "" ) endif() -set( GLOBAL_INCLUDE_DIRS "${GLOBAL_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR}" CACHE INTERNAL "" ) +set( GLOBAL_INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "" ) set( SVNVERSION ${SVNVERSION} CACHE STRING "SVN version of the source code" ) if( INSTALL_BUILD_DATA ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h DESTINATION ${CMAKE_INSTALL_PREFIX}/src/common ) endif() message( STATUS "Creating svnversion.h - done" ) + +##################################################################### +# setup +# +set( COMMON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" + CACHE PATH "common source directory" ) +mark_as_advanced( COMMON_SOURCE_DIR ) + +set( COMMON_ALL_HEADERS + "${CMAKE_CURRENT_BINARY_DIR}/svnversion.h" + "${COMMON_SOURCE_DIR}/cbasetypes.h" + "${COMMON_SOURCE_DIR}/mmo.h" + "${COMMON_SOURCE_DIR}/plugin.h" + "${COMMON_SOURCE_DIR}/version.h" + ) + +set( COMMON_MINI_HEADERS + ${COMMON_ALL_HEADERS} + "${COMMON_SOURCE_DIR}/core.h" + "${COMMON_SOURCE_DIR}/malloc.h" + "${COMMON_SOURCE_DIR}/showmsg.h" + "${COMMON_SOURCE_DIR}/strlib.h" + CACHE INTERNAL "" ) +set( COMMON_MINI_SOURCES + "${COMMON_SOURCE_DIR}/core.c" + "${COMMON_SOURCE_DIR}/malloc.c" + "${COMMON_SOURCE_DIR}/showmsg.c" + "${COMMON_SOURCE_DIR}/strlib.c" + CACHE INTERNAL "" ) +set( COMMON_MINI_DEFINITIONS MINICORE CACHE INTERNAL "" ) + + +# +# common_base +# +if( USE_ZLIB ) +message( STATUS "Creating target common_base" ) +set( COMMON_BASE_HEADERS + ${COMMON_ALL_HEADERS} + "${COMMON_SOURCE_DIR}/core.h" + "${COMMON_SOURCE_DIR}/db.h" + "${COMMON_SOURCE_DIR}/ers.h" + "${COMMON_SOURCE_DIR}/grfio.h" + "${COMMON_SOURCE_DIR}/lock.h" + "${COMMON_SOURCE_DIR}/malloc.h" + "${COMMON_SOURCE_DIR}/mapindex.h" + "${COMMON_SOURCE_DIR}/md5calc.h" + "${COMMON_SOURCE_DIR}/nullpo.h" + "${COMMON_SOURCE_DIR}/plugins.h" + "${COMMON_SOURCE_DIR}/random.h" + "${COMMON_SOURCE_DIR}/showmsg.h" + "${COMMON_SOURCE_DIR}/socket.h" + "${COMMON_SOURCE_DIR}/strlib.h" + "${COMMON_SOURCE_DIR}/timer.h" + "${COMMON_SOURCE_DIR}/utils.h" + CACHE INTERNAL "common_base headers" ) +set( COMMON_BASE_SOURCES + "${COMMON_SOURCE_DIR}/core.c" + "${COMMON_SOURCE_DIR}/db.c" + "${COMMON_SOURCE_DIR}/ers.c" + "${COMMON_SOURCE_DIR}/grfio.c" + "${COMMON_SOURCE_DIR}/lock.c" + "${COMMON_SOURCE_DIR}/malloc.c" + "${COMMON_SOURCE_DIR}/mapindex.c" + "${COMMON_SOURCE_DIR}/md5calc.c" + "${COMMON_SOURCE_DIR}/nullpo.c" + "${COMMON_SOURCE_DIR}/plugins.c" + "${COMMON_SOURCE_DIR}/random.c" + "${COMMON_SOURCE_DIR}/showmsg.c" + "${COMMON_SOURCE_DIR}/socket.c" + "${COMMON_SOURCE_DIR}/strlib.c" + "${COMMON_SOURCE_DIR}/timer.c" + "${COMMON_SOURCE_DIR}/utils.c" + CACHE INTERNAL "common_base sources" ) +set( LIBRARIES ${ZLIB_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ) +set( DEFINITIONS ${GLOBAL_DEFINITIONS} ) +set( SOURCE_FILES ${MT19937AR_HEADERS} ${MT19937AR_SOURCES} ${COMMON_BASE_HEADERS} ${COMMON_BASE_SOURCES} ) +source_group( mt19937ar FILES ${MT19937AR_HEADERS} ${MT19937AR_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ${COMMON_BASE_SOURCES} ) +add_library( common_base ${SOURCE_FILES} ) +target_link_libraries( common_base ${LIBRARIES} ) +set_target_properties( common_base PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) +include_directories( ${INCLUDE_DIRS} ) +message( STATUS "Creating target common_base - done" ) +set( HAVE_common_base ON CACHE BOOL "common_base target is available" ) +mark_as_advanced( HAVE_common_base ) +else() +message( STATUS "Skipping target common_base (requires ZLIB)" ) +unset( HAVE_common_base CACHE ) +endif() + + +# +# common_sql +# +if( HAVE_common_base AND USE_MYSQL ) +message( STATUS "Creating target common_sql" ) +set( COMMON_SQL_HEADERS + ${COMMON_ALL_HEADERS} + "${CMAKE_CURRENT_SOURCE_DIR}/sql.h" + CACHE INTERNAL "common_sql headers" ) +set( COMMON_SQL_SOURCES + "${CMAKE_CURRENT_SOURCE_DIR}/sql.c" + CACHE INTERNAL "common_sql sources" ) +set( DEPENDENCIES common_base ) +set( LIBRARIES ${MYSQL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} ) +set( DEFINITIONS ${GLOBAL_DEFINITIONS} ) +set( SOURCE_FILES ${COMMON_SQL_HEADERS} ${COMMON_SQL_SOURCES} ) +source_group( common FILES ${COMMON_SQL_HEADERS} ${COMMON_SQL_SOURCES} ) +add_library( common_sql ${SOURCE_FILES} ) +add_dependencies( common_sql ${DEPENDENCIES} ) +target_link_libraries( common_sql ${LIBRARIES} ${DEPENDENCIES} ) +set_target_properties( common_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) +include_directories( ${INCLUDE_DIRS} ) +message( STATUS "Creating target common_sql - done" ) +set( HAVE_common_sql ON CACHE BOOL "common_sql target is available" ) +mark_as_advanced( HAVE_common_sql ) +else() +message( STATUS "Skipping target common_sql (requires common_base and MYSQL)" ) +unset( HAVE_common_sql CACHE ) +endif() diff --git a/src/login/CMakeLists.txt b/src/login/CMakeLists.txt index 82390ebd8..afa4e5f20 100644 --- a/src/login/CMakeLists.txt +++ b/src/login/CMakeLists.txt @@ -2,43 +2,7 @@ # # setup # -set( MT19937AR_SOURCES - "${MT19937AR_SOURCE_DIR}/mt19937ar.c" - ) -set( COMMON_SOURCES - "${COMMON_SOURCE_DIR}/core.c" - "${COMMON_SOURCE_DIR}/db.c" - "${COMMON_SOURCE_DIR}/ers.c" -# "${COMMON_SOURCE_DIR}/grfio.c" - "${COMMON_SOURCE_DIR}/lock.c" - "${COMMON_SOURCE_DIR}/malloc.c" -# "${COMMON_SOURCE_DIR}/mapindex.c" - "${COMMON_SOURCE_DIR}/md5calc.c" -# "${COMMON_SOURCE_DIR}/nullpo.c" - "${COMMON_SOURCE_DIR}/plugins.c" - "${COMMON_SOURCE_DIR}/random.c" - "${COMMON_SOURCE_DIR}/showmsg.c" - "${COMMON_SOURCE_DIR}/socket.c" - "${COMMON_SOURCE_DIR}/strlib.c" - "${COMMON_SOURCE_DIR}/timer.c" - "${COMMON_SOURCE_DIR}/utils.c" - ) -set( COMMON_SQL_SOURCES - "${COMMON_SOURCE_DIR}/sql.c" - ) -set( LOGIN_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/login.c" - ) -set( LOGIN_TXT_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/account_txt.c" - "${CMAKE_CURRENT_SOURCE_DIR}/ipban_txt.c" - "${CMAKE_CURRENT_SOURCE_DIR}/loginlog_txt.c" - ) -set( LOGIN_SQL_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/account_sql.c" - "${CMAKE_CURRENT_SOURCE_DIR}/ipban_sql.c" - "${CMAKE_CURRENT_SOURCE_DIR}/loginlog_sql.c" - ) +set( LOGIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} ) # diff --git a/src/login/sql/CMakeLists.txt b/src/login/sql/CMakeLists.txt index 3cecb8840..50bf256e2 100644 --- a/src/login/sql/CMakeLists.txt +++ b/src/login/sql/CMakeLists.txt @@ -2,33 +2,41 @@ # # login sql # -if( USE_ZLIB AND USE_MYSQL ) -message ( STATUS "Creating target login-server_sql" ) -set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ${MYSQL_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} ${COMMON_INCLUDE_DIRS} ) +if( HAVE_common_sql ) +message( STATUS "Creating target login-server_sql" ) +set( SQL_LOGIN_HEADERS + "${LOGIN_SOURCE_DIR}/account.h" + "${LOGIN_SOURCE_DIR}/ipban.h" + "${LOGIN_SOURCE_DIR}/login.h" + "${LOGIN_SOURCE_DIR}/loginlog.h" + ) +set( SQL_LOGIN_SOURCES + "${LOGIN_SOURCE_DIR}/account_sql.c" + "${LOGIN_SOURCE_DIR}/ipban_sql.c" + "${LOGIN_SOURCE_DIR}/login.c" + "${LOGIN_SOURCE_DIR}/loginlog_sql.c" + ) +set( DEPENDENCIES common_sql ) +set( LIBRARIES ${GLOBAL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) set( DEFINITIONS ${GLOBAL_DEFINITIONS} WITH_SQL ) -if( PACKETVER ) - message( STATUS "Using PACKETVER=${PACKETVER}" ) - list( APPEND DEFINITIONS PACKETVER=${PACKETVER} ) -endif() -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${MT19937AR_SOURCES} ${COMMON_SOURCES} ${COMMON_SQL_SOURCES} ${LOGIN_SOURCES} ${LOGIN_SQL_SOURCES} ) -source_group( 3rdparty FILES ${MT19937AR_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ${COMMON_SQL_SOURCES} ) -source_group( login FILES ${LOGIN_SOURCES} ${LOGIN_SQL_SOURCES} ) +set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${COMMON_SQL_HEADERS} ${SQL_LOGIN_HEADERS} ${SQL_LOGIN_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ${COMMON_SQL_HEADERS} ) +source_group( login FILES ${SQL_LOGIN_HEADERS} ${SQL_LOGIN_SOURCES} ) include_directories( ${INCLUDE_DIRS} ) add_executable( login-server_sql ${SOURCE_FILES} ) -target_link_libraries( login-server_sql ${LIBRARIES} ) +add_dependencies( login-server_sql ${DEPENDENCIES} ) +target_link_libraries( login-server_sql ${LIBRARIES} ${DEPENDENCIES} ) set_target_properties( login-server_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) if( INSTALL_RUN_DATA ) install( TARGETS login-server_sql DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "login-server_sql" ) endif() -message ( STATUS "Creating target login-server_sql - done" ) +message( STATUS "Creating target login-server_sql - done" ) +set( HAVE_login-server_sql ON CACHE BOOL "login-server_sql target is available" ) +mark_as_advanced( HAVE_login-server_sql ) else() -message ( STATUS "Skipping target login-server_sql (requires ZLIB and MYSQL)" ) +message( STATUS "Skipping target login-server_sql (requires common_sql)" ) +unset( HAVE_login-server_sql CACHE ) endif() diff --git a/src/login/txt/CMakeLists.txt b/src/login/txt/CMakeLists.txt index 0c567f9e2..dff7d322c 100644 --- a/src/login/txt/CMakeLists.txt +++ b/src/login/txt/CMakeLists.txt @@ -2,33 +2,41 @@ # # login txt # -if( USE_ZLIB ) -message ( STATUS "Creating target login-server" ) -set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${COMMON_INCLUDE_DIRS} ) +if( HAVE_common_base ) +message( STATUS "Creating target login-server" ) +set( TXT_LOGIN_HEADERS + "${LOGIN_SOURCE_DIR}/account.h" + "${LOGIN_SOURCE_DIR}/ipban.h" + "${LOGIN_SOURCE_DIR}/login.h" + "${LOGIN_SOURCE_DIR}/loginlog.h" + ) +set( TXT_LOGIN_SOURCES + "${LOGIN_SOURCE_DIR}/account_txt.c" + "${LOGIN_SOURCE_DIR}/ipban_txt.c" + "${LOGIN_SOURCE_DIR}/login.c" + "${LOGIN_SOURCE_DIR}/loginlog_txt.c" + ) +set( DEPENDENCIES common_base ) +set( LIBRARIES ${GLOBAL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) set( DEFINITIONS ${GLOBAL_DEFINITIONS} WITH_TXT ) -if( PACKETVER ) - message( STATUS "Using PACKETVER=${PACKETVER}" ) - list( APPEND DEFINITIONS PACKETVER=${PACKETVER} ) -endif() -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${MT19937AR_SOURCES} ${COMMON_SOURCES} ${LOGIN_SOURCES} ${LOGIN_TXT_SOURCES} ) -source_group( 3rdparty FILES ${MT19937AR_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ) -source_group( login FILES ${LOGIN_SOURCES} ${LOGIN_TXT_SOURCES} ) +set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${TXT_LOGIN_HEADERS} ${TXT_LOGIN_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ) +source_group( login FILES ${TXT_LOGIN_HEADERS} ${TXT_LOGIN_SOURCES} ) include_directories( ${INCLUDE_DIRS} ) add_executable( login-server ${SOURCE_FILES} ) -target_link_libraries( login-server ${LIBRARIES} ) +add_dependencies( login-server ${DEPENDENCIES} ) +target_link_libraries( login-server ${LIBRARIES} ${DEPENDENCIES} ) set_target_properties( login-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) if( INSTALL_RUN_DATA ) install( TARGETS login-server DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "login-server" ) endif() -message ( STATUS "Creating target login-server - done" ) +message( STATUS "Creating target login-server - done" ) +set( HAVE_login-server ON CACHE BOOL "login-server target is available" ) +mark_as_advanced( HAVE_login-server ) else() -message ( STATUS "Skipping target login-server (requires ZLIB)" ) +message( STATUS "Skipping target login-server (requires common_base)" ) +unset( HAVE_login-server CACHE ) endif() diff --git a/src/map/CMakeLists.txt b/src/map/CMakeLists.txt index 4ff85fa19..9199702be 100644 --- a/src/map/CMakeLists.txt +++ b/src/map/CMakeLists.txt @@ -2,72 +2,7 @@ # # setup # -set( MT19937AR_SOURCES - "${MT19937AR_SOURCE_DIR}/mt19937ar.c" - ) -set( COMMON_SOURCES - "${COMMON_SOURCE_DIR}/core.c" - "${COMMON_SOURCE_DIR}/db.c" - "${COMMON_SOURCE_DIR}/ers.c" - "${COMMON_SOURCE_DIR}/grfio.c" - "${COMMON_SOURCE_DIR}/lock.c" - "${COMMON_SOURCE_DIR}/malloc.c" - "${COMMON_SOURCE_DIR}/mapindex.c" - "${COMMON_SOURCE_DIR}/md5calc.c" - "${COMMON_SOURCE_DIR}/nullpo.c" - "${COMMON_SOURCE_DIR}/plugins.c" - "${COMMON_SOURCE_DIR}/random.c" - "${COMMON_SOURCE_DIR}/showmsg.c" - "${COMMON_SOURCE_DIR}/socket.c" - "${COMMON_SOURCE_DIR}/strlib.c" - "${COMMON_SOURCE_DIR}/timer.c" - "${COMMON_SOURCE_DIR}/utils.c" - ) -set( COMMON_SQL_SOURCES - "${COMMON_SOURCE_DIR}/sql.c" - ) -set( MAP_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/atcommand.c" - "${CMAKE_CURRENT_SOURCE_DIR}/battle.c" - "${CMAKE_CURRENT_SOURCE_DIR}/battleground.c" - "${CMAKE_CURRENT_SOURCE_DIR}/buyingstore.c" - "${CMAKE_CURRENT_SOURCE_DIR}/chat.c" - "${CMAKE_CURRENT_SOURCE_DIR}/chrif.c" - "${CMAKE_CURRENT_SOURCE_DIR}/clif.c" - "${CMAKE_CURRENT_SOURCE_DIR}/date.c" - "${CMAKE_CURRENT_SOURCE_DIR}/duel.c" - "${CMAKE_CURRENT_SOURCE_DIR}/guild.c" - "${CMAKE_CURRENT_SOURCE_DIR}/homunculus.c" - "${CMAKE_CURRENT_SOURCE_DIR}/instance.c" - "${CMAKE_CURRENT_SOURCE_DIR}/intif.c" - "${CMAKE_CURRENT_SOURCE_DIR}/itemdb.c" - "${CMAKE_CURRENT_SOURCE_DIR}/log.c" - "${CMAKE_CURRENT_SOURCE_DIR}/mail.c" - "${CMAKE_CURRENT_SOURCE_DIR}/map.c" - "${CMAKE_CURRENT_SOURCE_DIR}/mercenary.c" - "${CMAKE_CURRENT_SOURCE_DIR}/mob.c" - "${CMAKE_CURRENT_SOURCE_DIR}/npc.c" - "${CMAKE_CURRENT_SOURCE_DIR}/npc_chat.c" - "${CMAKE_CURRENT_SOURCE_DIR}/party.c" - "${CMAKE_CURRENT_SOURCE_DIR}/path.c" - "${CMAKE_CURRENT_SOURCE_DIR}/pc.c" - "${CMAKE_CURRENT_SOURCE_DIR}/pet.c" - "${CMAKE_CURRENT_SOURCE_DIR}/quest.c" - "${CMAKE_CURRENT_SOURCE_DIR}/script.c" - "${CMAKE_CURRENT_SOURCE_DIR}/searchstore.c" - "${CMAKE_CURRENT_SOURCE_DIR}/skill.c" - "${CMAKE_CURRENT_SOURCE_DIR}/status.c" - "${CMAKE_CURRENT_SOURCE_DIR}/storage.c" - "${CMAKE_CURRENT_SOURCE_DIR}/trade.c" - "${CMAKE_CURRENT_SOURCE_DIR}/unit.c" - "${CMAKE_CURRENT_SOURCE_DIR}/vending.c" - ) -set( MAP_TXT_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/mapreg_txt.c" - ) -set( MAP_SQL_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/mapreg_sql.c" - ) +set( MAP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} ) # diff --git a/src/map/sql/CMakeLists.txt b/src/map/sql/CMakeLists.txt index 13b1af32c..c7922f276 100644 --- a/src/map/sql/CMakeLists.txt +++ b/src/map/sql/CMakeLists.txt @@ -2,38 +2,108 @@ # # map sql # -if( USE_ZLIB AND USE_MYSQL ) -message ( STATUS "Creating target map-server_sql" ) -set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ${MYSQL_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} ${COMMON_INCLUDE_DIRS} ) +if( HAVE_common_sql ) +message( STATUS "Creating target map-server_sql" ) +set( SQL_MAP_HEADERS + "${MAP_SOURCE_DIR}/atcommand.h" + "${MAP_SOURCE_DIR}/battle.h" + "${MAP_SOURCE_DIR}/battleground.h" + "${MAP_SOURCE_DIR}/buyingstore.h" + "${MAP_SOURCE_DIR}/chat.h" + "${MAP_SOURCE_DIR}/chrif.h" + "${MAP_SOURCE_DIR}/clif.h" + "${MAP_SOURCE_DIR}/date.h" + "${MAP_SOURCE_DIR}/duel.h" + "${MAP_SOURCE_DIR}/guild.h" + "${MAP_SOURCE_DIR}/homunculus.h" + "${MAP_SOURCE_DIR}/instance.h" + "${MAP_SOURCE_DIR}/intif.h" + "${MAP_SOURCE_DIR}/itemdb.h" + "${MAP_SOURCE_DIR}/log.h" + "${MAP_SOURCE_DIR}/mail.h" + "${MAP_SOURCE_DIR}/map.h" + "${MAP_SOURCE_DIR}/mapreg.h" + "${MAP_SOURCE_DIR}/mercenary.h" + "${MAP_SOURCE_DIR}/mob.h" + "${MAP_SOURCE_DIR}/npc.h" + "${MAP_SOURCE_DIR}/party.h" + "${MAP_SOURCE_DIR}/path.h" + "${MAP_SOURCE_DIR}/pc.h" + "${MAP_SOURCE_DIR}/pet.h" + "${MAP_SOURCE_DIR}/quest.h" + "${MAP_SOURCE_DIR}/script.h" + "${MAP_SOURCE_DIR}/searchstore.h" + "${MAP_SOURCE_DIR}/skill.h" + "${MAP_SOURCE_DIR}/status.h" + "${MAP_SOURCE_DIR}/storage.h" + "${MAP_SOURCE_DIR}/trade.h" + "${MAP_SOURCE_DIR}/unit.h" + "${MAP_SOURCE_DIR}/vending.h" + ) +set( SQL_MAP_SOURCES + "${MAP_SOURCE_DIR}/atcommand.c" + "${MAP_SOURCE_DIR}/battle.c" + "${MAP_SOURCE_DIR}/battleground.c" + "${MAP_SOURCE_DIR}/buyingstore.c" + "${MAP_SOURCE_DIR}/chat.c" + "${MAP_SOURCE_DIR}/chrif.c" + "${MAP_SOURCE_DIR}/clif.c" + "${MAP_SOURCE_DIR}/date.c" + "${MAP_SOURCE_DIR}/duel.c" + "${MAP_SOURCE_DIR}/guild.c" + "${MAP_SOURCE_DIR}/homunculus.c" + "${MAP_SOURCE_DIR}/instance.c" + "${MAP_SOURCE_DIR}/intif.c" + "${MAP_SOURCE_DIR}/itemdb.c" + "${MAP_SOURCE_DIR}/log.c" + "${MAP_SOURCE_DIR}/mail.c" + "${MAP_SOURCE_DIR}/map.c" + "${MAP_SOURCE_DIR}/mapreg_sql.c" + "${MAP_SOURCE_DIR}/mercenary.c" + "${MAP_SOURCE_DIR}/mob.c" + "${MAP_SOURCE_DIR}/npc.c" + "${MAP_SOURCE_DIR}/npc_chat.c" + "${MAP_SOURCE_DIR}/party.c" + "${MAP_SOURCE_DIR}/path.c" + "${MAP_SOURCE_DIR}/pc.c" + "${MAP_SOURCE_DIR}/pet.c" + "${MAP_SOURCE_DIR}/quest.c" + "${MAP_SOURCE_DIR}/script.c" + "${MAP_SOURCE_DIR}/searchstore.c" + "${MAP_SOURCE_DIR}/skill.c" + "${MAP_SOURCE_DIR}/status.c" + "${MAP_SOURCE_DIR}/storage.c" + "${MAP_SOURCE_DIR}/trade.c" + "${MAP_SOURCE_DIR}/unit.c" + "${MAP_SOURCE_DIR}/vending.c" + ) +set( DEPENDENCIES common_sql ) +set( LIBRARIES ${GLOBAL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) set( DEFINITIONS ${GLOBAL_DEFINITIONS} ) if( USE_PCRE ) message( STATUS "Using PCRE" ) list( APPEND LIBRARIES ${PCRE_LIBRARIES} ) list( APPEND INCLUDE_DIRS ${PCRE_INCLUDE_DIRS} ) + list( APPEND DEFINITIONS PCRE_SUPPORT ) endif() -if( PACKETVER ) - message( STATUS "Using PACKETVER=${PACKETVER}" ) - list( APPEND DEFINITIONS PACKETVER=${PACKETVER} ) -endif() -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${MT19937AR_SOURCES} ${COMMON_SOURCES} ${COMMON_SQL_SOURCES} ${MAP_SOURCES} ${MAP_SQL_SOURCES} ) -source_group( 3rdparty FILES ${MT19937AR_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ${COMMON_SQL_SOURCES} ) -source_group( map FILES ${MAP_SOURCES} ${MAP_SQL_SOURCES} ) +set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${COMMON_SQL_HEADERS} ${SQL_MAP_HEADERS} ${SQL_MAP_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ${COMMON_SQL_HEADERS} ) +source_group( map FILES ${SQL_MAP_HEADERS} ${SQL_MAP_SOURCES} ) include_directories( ${INCLUDE_DIRS} ) add_executable( map-server_sql ${SOURCE_FILES} ) -target_link_libraries( map-server_sql ${LIBRARIES} ) +add_dependencies( map-server_sql ${DEPENDENCIES} ) +target_link_libraries( map-server_sql ${LIBRARIES} ${DEPENDENCIES} ) set_target_properties( map-server_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) if( INSTALL_RUN_DATA ) install( TARGETS map-server_sql DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "map-server_sql" ) endif() -message ( STATUS "Creating target map-server_sql - done" ) +message( STATUS "Creating target map-server_sql - done" ) +set( HAVE_map-server_sql ON CACHE BOOL "map-server_sql target is available" ) +mark_as_advanced( HAVE_map-server_sql ) else() -message ( STATUS "Skipping target map-server_sql (requires ZLIB and MYSQL; optional PCRE)" ) +message( STATUS "Skipping target map-server_sql (requires common_sql; optional PCRE)" ) +unset( HAVE_map-server_sql CACHE ) endif() diff --git a/src/map/txt/CMakeLists.txt b/src/map/txt/CMakeLists.txt index f62885b7a..544e00c87 100644 --- a/src/map/txt/CMakeLists.txt +++ b/src/map/txt/CMakeLists.txt @@ -2,38 +2,108 @@ # # map txt # -if( USE_ZLIB ) -message ( STATUS "Creating target map-server" ) -set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ) +if( HAVE_common_base ) +message( STATUS "Creating target map-server" ) +set( TXT_MAP_HEADERS + "${MAP_SOURCE_DIR}/atcommand.h" + "${MAP_SOURCE_DIR}/battle.h" + "${MAP_SOURCE_DIR}/battleground.h" + "${MAP_SOURCE_DIR}/buyingstore.h" + "${MAP_SOURCE_DIR}/chat.h" + "${MAP_SOURCE_DIR}/chrif.h" + "${MAP_SOURCE_DIR}/clif.h" + "${MAP_SOURCE_DIR}/date.h" + "${MAP_SOURCE_DIR}/duel.h" + "${MAP_SOURCE_DIR}/guild.h" + "${MAP_SOURCE_DIR}/homunculus.h" + "${MAP_SOURCE_DIR}/instance.h" + "${MAP_SOURCE_DIR}/intif.h" + "${MAP_SOURCE_DIR}/itemdb.h" + "${MAP_SOURCE_DIR}/log.h" + "${MAP_SOURCE_DIR}/mail.h" + "${MAP_SOURCE_DIR}/map.h" + "${MAP_SOURCE_DIR}/mapreg.h" + "${MAP_SOURCE_DIR}/mercenary.h" + "${MAP_SOURCE_DIR}/mob.h" + "${MAP_SOURCE_DIR}/npc.h" + "${MAP_SOURCE_DIR}/party.h" + "${MAP_SOURCE_DIR}/path.h" + "${MAP_SOURCE_DIR}/pc.h" + "${MAP_SOURCE_DIR}/pet.h" + "${MAP_SOURCE_DIR}/quest.h" + "${MAP_SOURCE_DIR}/script.h" + "${MAP_SOURCE_DIR}/searchstore.h" + "${MAP_SOURCE_DIR}/skill.h" + "${MAP_SOURCE_DIR}/status.h" + "${MAP_SOURCE_DIR}/storage.h" + "${MAP_SOURCE_DIR}/trade.h" + "${MAP_SOURCE_DIR}/unit.h" + "${MAP_SOURCE_DIR}/vending.h" + ) +set( TXT_MAP_SOURCES + "${MAP_SOURCE_DIR}/atcommand.c" + "${MAP_SOURCE_DIR}/battle.c" + "${MAP_SOURCE_DIR}/battleground.c" + "${MAP_SOURCE_DIR}/buyingstore.c" + "${MAP_SOURCE_DIR}/chat.c" + "${MAP_SOURCE_DIR}/chrif.c" + "${MAP_SOURCE_DIR}/clif.c" + "${MAP_SOURCE_DIR}/date.c" + "${MAP_SOURCE_DIR}/duel.c" + "${MAP_SOURCE_DIR}/guild.c" + "${MAP_SOURCE_DIR}/homunculus.c" + "${MAP_SOURCE_DIR}/instance.c" + "${MAP_SOURCE_DIR}/intif.c" + "${MAP_SOURCE_DIR}/itemdb.c" + "${MAP_SOURCE_DIR}/log.c" + "${MAP_SOURCE_DIR}/mail.c" + "${MAP_SOURCE_DIR}/map.c" + "${MAP_SOURCE_DIR}/mapreg_txt.c" + "${MAP_SOURCE_DIR}/mercenary.c" + "${MAP_SOURCE_DIR}/mob.c" + "${MAP_SOURCE_DIR}/npc.c" + "${MAP_SOURCE_DIR}/npc_chat.c" + "${MAP_SOURCE_DIR}/party.c" + "${MAP_SOURCE_DIR}/path.c" + "${MAP_SOURCE_DIR}/pc.c" + "${MAP_SOURCE_DIR}/pet.c" + "${MAP_SOURCE_DIR}/quest.c" + "${MAP_SOURCE_DIR}/script.c" + "${MAP_SOURCE_DIR}/searchstore.c" + "${MAP_SOURCE_DIR}/skill.c" + "${MAP_SOURCE_DIR}/status.c" + "${MAP_SOURCE_DIR}/storage.c" + "${MAP_SOURCE_DIR}/trade.c" + "${MAP_SOURCE_DIR}/unit.c" + "${MAP_SOURCE_DIR}/vending.c" + ) +set( DEPENDENCIES common_base ) +set( LIBRARIES ${GLOBAL_LIBRARIES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) set( DEFINITIONS ${GLOBAL_DEFINITIONS} TXT_ONLY ) if( USE_PCRE ) message( STATUS "Using PCRE" ) list( APPEND LIBRARIES ${PCRE_LIBRARIES} ) list( APPEND INCLUDE_DIRS ${PCRE_INCLUDE_DIRS} ) + list( APPEND DEFINITIONS PCRE_SUPPORT ) endif() -if( PACKETVER ) - message( STATUS "Using PACKETVER=${PACKETVER}" ) - list( APPEND DEFINITIONS PACKETVER=${PACKETVER} ) -endif() -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${MT19937AR_SOURCES} ${COMMON_SOURCES} ${MAP_SOURCES} ${MAP_TXT_SOURCES} ) -source_group( 3rdparty FILES ${MT19937AR_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ) -source_group( map FILES ${MAP_SOURCES} ${MAP_TXT_SOURCES} ) +set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${TXT_MAP_HEADERS} ${TXT_MAP_SOURCES} ) +source_group( common FILES ${COMMON_BASE_HEADERS} ) +source_group( map FILES ${TXT_MAP_HEADERS} ${TXT_MAP_SOURCES} ) include_directories( ${INCLUDE_DIRS} ) add_executable( map-server ${SOURCE_FILES} ) -target_link_libraries( map-server ${LIBRARIES} ) +add_dependencies( map-server ${DEPENDENCIES} ) +target_link_libraries( map-server ${LIBRARIES} ${DEPENDENCIES} ) set_target_properties( map-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) if( INSTALL_RUN_DATA ) install( TARGETS map-server DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "map-server" ) endif() -message ( STATUS "Creating target map-server - done" ) +message( STATUS "Creating target map-server - done" ) +set( HAVE_map-server ON CACHE BOOL "map-server target is available" ) +mark_as_advanced( HAVE_map-server ) else() -message ( STATUS "Skipping target map-server (requires ZLIB; optional PCRE)" ) +message( STATUS "Skipping target map-server (requires common_base; optional PCRE)" ) +unset( HAVE_map-server CACHE ) endif() diff --git a/src/tool/CMakeLists.txt b/src/tool/CMakeLists.txt index 4f69174b9..e39b174dd 100644 --- a/src/tool/CMakeLists.txt +++ b/src/tool/CMakeLists.txt @@ -25,16 +25,25 @@ set( MAPCACHE_SOURCES # mapcache if( USE_ZLIB ) -message ( STATUS "Creating target mapcache" ) +message( STATUS "Creating target mapcache" ) +set( COMMON_HEADERS + ${COMMON_MINI_HEADERS} + "${COMMON_SOURCE_DIR}/grfio.h" + "${COMMON_SOURCE_DIR}/utils.h" + ) +set( COMMON_SOURCES + ${COMMON_MINI_SOURCES} + "${COMMON_SOURCE_DIR}/grfio.c" + "${COMMON_SOURCE_DIR}/utils.c" + ) +set( MAPCACHE_SOURCES + "${CMAKE_CURRENT_SOURCE_DIR}/mapcache.c" + ) set( LIBRARIES ${GLOBAL_LIBRARIES} ${ZLIB_LIBRARIES} ) -set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${COMMON_INCLUDE_DIRS} ) -set( DEFINITIONS ${GLOBAL_DEFINITIONS} MINICORE ) -if( WIN32 ) - list( APPEND LIBRARIES "oldnames.lib" "ws2_32.lib" ) - list( APPEND INCLUDE_DIRS ${MSINTTYPES_INCLUDE_DIRS} ) -endif() -set( SOURCE_FILES ${COMMON_SOURCES} ${MAPCACHE_SOURCES} ) -source_group( common FILES ${COMMON_SOURCES} ) +set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ) +set( DEFINITIONS ${GLOBAL_DEFINITIONS} ${COMMON_MINI_DEFINITIONS} ) +set( SOURCE_FILES ${COMMON_HEADERS} ${COMMON_SOURCES} ${MAPCACHE_SOURCES} ) +source_group( common FILES ${COMMON_HEADERS} ${COMMON_SOURCES} ) source_group( mapcache FILES ${MAPCACHE_SOURCES} ) add_executable( mapcache ${SOURCE_FILES} ) include_directories( ${INCLUDE_DIRS} ) @@ -45,7 +54,10 @@ if( INSTALL_RUN_DATA ) DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT "mapcache" ) endif() -message ( STATUS "Creating target mapcache - done" ) +message( STATUS "Creating target mapcache - done" ) +set( HAVE_mapcache ON CACHE BOOL "mapcache target is available" ) +mark_as_advanced( HAVE_mapcache ) else() -message ( STATUS "Skipping target mapcache (requires ZLIB)" ) +message( STATUS "Skipping target mapcache (requires ZLIB)" ) +unset( HAVE_mapcache CACHE ) endif() -- cgit v1.2.3-70-g09d2