summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorflaviojs <flaviojs@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-06-29 12:26:51 +0000
committerflaviojs <flaviojs@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-06-29 12:26:51 +0000
commitdd73c6ea546a8828653cdce38a52f575cbdd3b96 (patch)
tree7c388def15aaf5e09e73f563ffa39c72d7c28c2f /src
parenta9492cf82f696af37f3258e19d7767f705708e63 (diff)
downloadhercules-dd73c6ea546a8828653cdce38a52f575cbdd3b96.tar.gz
hercules-dd73c6ea546a8828653cdce38a52f575cbdd3b96.tar.bz2
hercules-dd73c6ea546a8828653cdce38a52f575cbdd3b96.tar.xz
hercules-dd73c6ea546a8828653cdce38a52f575cbdd3b96.zip
* Added experimental support for CMake. (for now: basic build, no extras, only tested with VS10 and cygwin)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14872 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt9
-rw-r--r--src/char/CMakeLists.txt64
-rw-r--r--src/char_sql/CMakeLists.txt68
-rw-r--r--src/common/CMakeLists.txt40
-rw-r--r--src/login/CMakeLists.txt103
-rw-r--r--src/map/CMakeLists.txt140
-rw-r--r--src/tool/CMakeLists.txt49
7 files changed, 473 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 000000000..0bf5b0eb6
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+add_subdirectory( common )
+add_subdirectory( login )
+add_subdirectory( char )
+add_subdirectory( char_sql )
+add_subdirectory( map )
+add_subdirectory( tool )
+#add_subdirectory( txt-converter )
+#add_subdirectory( plugins )
diff --git a/src/char/CMakeLists.txt b/src/char/CMakeLists.txt
new file mode 100644
index 000000000..666070532
--- /dev/null
+++ b/src/char/CMakeLists.txt
@@ -0,0 +1,64 @@
+
+# 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( CHAR_SOURCES
+ "char.c"
+ "int_guild.c"
+ "int_homun.c"
+ "int_party.c"
+ "int_pet.c"
+ "int_status.c"
+ "int_storage.c"
+ "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( 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} )
+include_directories( ${INCLUDE_DIRS} )
+add_executable( char-server ${SOURCE_FILES} )
+target_link_libraries( char-server ${LIBRARIES} )
+set_target_properties( char-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS char-server DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target char-server - done" )
+else()
+message ( STATUS "Skipping target char-server (requires ZLIB)" )
+endif()
diff --git a/src/char_sql/CMakeLists.txt b/src/char_sql/CMakeLists.txt
new file mode 100644
index 000000000..d534ce89c
--- /dev/null
+++ b/src/char_sql/CMakeLists.txt
@@ -0,0 +1,68 @@
+
+# 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}/sql.c"
+ "${COMMON_SOURCE_DIR}/strlib.c"
+ "${COMMON_SOURCE_DIR}/timer.c"
+ "${COMMON_SOURCE_DIR}/utils.c"
+ )
+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"
+ )
+
+
+# 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( 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} )
+include_directories( ${INCLUDE_DIRS} )
+add_executable( char-server_sql ${SOURCE_FILES} )
+target_link_libraries( char-server_sql ${LIBRARIES} )
+set_target_properties( char-server_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS char-server_sql DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target char-server_sql - done" )
+else()
+message ( STATUS "Skipping target char-server_sql (requires ZLIB and MYSQL)" )
+endif()
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
new file mode 100644
index 000000000..7a4443abc
--- /dev/null
+++ b/src/common/CMakeLists.txt
@@ -0,0 +1,40 @@
+
+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" )
+find_program( SVNVERSION_EXECUTABLE svnversion )
+mark_as_advanced( SVNVERSION_EXECUTABLE )
+message( STATUS "Detecting svnversion - done" )
+
+
+#
+# Create svnversion.h
+#
+message( STATUS "Creating svnversion.h" )
+if( SVNVERSION_EXECUTABLE )
+ execute_process( COMMAND ${SVNVERSION_EXECUTABLE} ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE SVNVERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+endif()
+if( SVNVERSION )
+ file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h
+ "#ifndef SVNVERSION\n#define SVNVERSION ${SVNVERSION}\n#endif\n" )
+else()
+ file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h "" )
+endif()
+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" )
diff --git a/src/login/CMakeLists.txt b/src/login/CMakeLists.txt
new file mode 100644
index 000000000..88d137507
--- /dev/null
+++ b/src/login/CMakeLists.txt
@@ -0,0 +1,103 @@
+
+# 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
+ "login.c"
+ )
+set( LOGIN_TXT_SOURCES
+ "account_txt.c"
+ "ipban_txt.c"
+ "loginlog_txt.c"
+ )
+set( LOGIN_SQL_SOURCES
+ "account_sql.c"
+ "ipban_sql.c"
+ "loginlog_sql.c"
+ )
+
+
+#
+# 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} )
+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} )
+include_directories( ${INCLUDE_DIRS} )
+add_executable( login-server ${SOURCE_FILES} )
+target_link_libraries( login-server ${LIBRARIES} )
+set_target_properties( login-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS login-server DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target login-server - done" )
+else()
+message ( STATUS "Skipping target login-server (requires ZLIB)" )
+endif()
+
+
+# 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} )
+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} )
+include_directories( ${INCLUDE_DIRS} )
+add_executable( login-server_sql ${SOURCE_FILES} )
+target_link_libraries( login-server_sql ${LIBRARIES} )
+set_target_properties( login-server_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS login-server_sql DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target login-server_sql - done" )
+else()
+message ( STATUS "Skipping target login-server_sql (requires ZLIB and MYSQL)" )
+endif()
diff --git a/src/map/CMakeLists.txt b/src/map/CMakeLists.txt
new file mode 100644
index 000000000..e5589a30e
--- /dev/null
+++ b/src/map/CMakeLists.txt
@@ -0,0 +1,140 @@
+
+# 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
+ "atcommand.c"
+ "battle.c"
+ "battleground.c"
+ "buyingstore.c"
+ "chat.c"
+ "chrif.c"
+ "clif.c"
+ "date.c"
+ "duel.c"
+ "guild.c"
+ "homunculus.c"
+ "instance.c"
+ "intif.c"
+ "itemdb.c"
+ "log.c"
+ "mail.c"
+ "map.c"
+ "mercenary.c"
+ "mob.c"
+ "npc.c"
+ "npc_chat.c"
+ "party.c"
+ "path.c"
+ "pc.c"
+ "pet.c"
+ "quest.c"
+ "script.c"
+ "searchstore.c"
+ "skill.c"
+ "status.c"
+ "storage.c"
+ "trade.c"
+ "unit.c"
+ "vending.c"
+ )
+set( MAP_TXT_SOURCES
+ "mapreg_txt.c"
+ )
+set( MAP_SQL_SOURCES
+ "mapreg_sql.c"
+ )
+
+
+# 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} )
+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} )
+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} )
+include_directories( ${INCLUDE_DIRS} )
+add_executable( map-server ${SOURCE_FILES} )
+target_link_libraries( map-server ${LIBRARIES} )
+set_target_properties( map-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS map-server DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target map-server - done" )
+else()
+message ( STATUS "Skipping target map-server (requires ZLIB; optional PCRE)" )
+endif()
+
+
+# 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} )
+set( DEFINITIONS ${GLOBAL_DEFINITIONS} )
+if( USE_PCRE )
+ message( STATUS "Using PCRE" )
+ list( APPEND LIBRARIES ${PCRE_LIBRARIES} )
+ list( APPEND INCLUDE_DIRS ${PCRE_INCLUDE_DIRS} )
+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} )
+include_directories( ${INCLUDE_DIRS} )
+add_executable( map-server_sql ${SOURCE_FILES} )
+target_link_libraries( map-server_sql ${LIBRARIES} )
+set_target_properties( map-server_sql PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS map-server_sql DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target map-server_sql - done" )
+else()
+message ( STATUS "Skipping target map-server_sql (requires ZLIB and MYSQL; optional PCRE)" )
+endif()
diff --git a/src/tool/CMakeLists.txt b/src/tool/CMakeLists.txt
new file mode 100644
index 000000000..5b4880893
--- /dev/null
+++ b/src/tool/CMakeLists.txt
@@ -0,0 +1,49 @@
+
+# setup
+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( MAPCACHE_SOURCES
+ mapcache.c
+ )
+
+
+# mapcache
+if( USE_ZLIB )
+message ( STATUS "Creating target mapcache" )
+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} )
+source_group( mapcache FILES ${MAPCACHE_SOURCES} )
+add_executable( mapcache ${SOURCE_FILES} )
+include_directories( ${INCLUDE_DIRS} )
+target_link_libraries( mapcache ${ZLIB_LIBRARIES} )
+set_target_properties( mapcache PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" )
+if( INSTALL_RUN_DATA )
+ install( TARGETS mapcache DESTINATION ${CMAKE_INSTALL_PREFIX} )
+endif()
+message ( STATUS "Creating target mapcache - done" )
+else()
+message ( STATUS "Skipping target mapcache (requires ZLIB)" )
+endif()