CMakeLists.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #
  2. # Create svnversion.h
  3. #
  4. message( STATUS "Creating svnversion.h" )
  5. if( SVNVERSION )
  6. file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h
  7. "#ifndef SVNVERSION\n#define SVNVERSION ${SVNVERSION}\n#endif\n" )
  8. else()
  9. file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h "" )
  10. endif()
  11. set( GLOBAL_INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "" )
  12. set( SVNVERSION ${SVNVERSION}
  13. CACHE STRING "SVN version of the source code" )
  14. if( INSTALL_COMPONENT_DEVELOPMENT )
  15. install( FILES ${CMAKE_CURRENT_BINARY_DIR}/svnversion.h
  16. DESTINATION "src/common"
  17. COMPONENT Development_base )
  18. endif( INSTALL_COMPONENT_DEVELOPMENT )
  19. message( STATUS "Creating svnversion.h - done" )
  20. #####################################################################
  21. # setup
  22. #
  23. set( COMMON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
  24. CACHE PATH "common source directory" )
  25. mark_as_advanced( COMMON_SOURCE_DIR )
  26. set( COMMON_ALL_HEADERS
  27. "${CMAKE_CURRENT_BINARY_DIR}/svnversion.h"
  28. "${COMMON_SOURCE_DIR}/cbasetypes.h"
  29. "${COMMON_SOURCE_DIR}/mmo.h"
  30. "${COMMON_SOURCE_DIR}/plugin.h"
  31. "${COMMON_SOURCE_DIR}/version.h"
  32. )
  33. set( COMMON_MINI_HEADERS
  34. ${COMMON_ALL_HEADERS}
  35. "${COMMON_SOURCE_DIR}/core.h"
  36. "${COMMON_SOURCE_DIR}/malloc.h"
  37. "${COMMON_SOURCE_DIR}/showmsg.h"
  38. "${COMMON_SOURCE_DIR}/strlib.h"
  39. CACHE INTERNAL "" )
  40. set( COMMON_MINI_SOURCES
  41. "${COMMON_SOURCE_DIR}/core.c"
  42. "${COMMON_SOURCE_DIR}/malloc.c"
  43. "${COMMON_SOURCE_DIR}/showmsg.c"
  44. "${COMMON_SOURCE_DIR}/strlib.c"
  45. CACHE INTERNAL "" )
  46. set( COMMON_MINI_DEFINITIONS "-DMINICORE" CACHE INTERNAL "" )
  47. #
  48. # common_base
  49. #
  50. if( WITH_ZLIB )
  51. message( STATUS "Creating target common_base" )
  52. set( COMMON_BASE_HEADERS
  53. ${COMMON_ALL_HEADERS}
  54. "${COMMON_SOURCE_DIR}/core.h"
  55. "${COMMON_SOURCE_DIR}/db.h"
  56. "${COMMON_SOURCE_DIR}/ers.h"
  57. "${COMMON_SOURCE_DIR}/grfio.h"
  58. "${COMMON_SOURCE_DIR}/lock.h"
  59. "${COMMON_SOURCE_DIR}/malloc.h"
  60. "${COMMON_SOURCE_DIR}/mapindex.h"
  61. "${COMMON_SOURCE_DIR}/md5calc.h"
  62. "${COMMON_SOURCE_DIR}/nullpo.h"
  63. "${COMMON_SOURCE_DIR}/plugins.h"
  64. "${COMMON_SOURCE_DIR}/random.h"
  65. "${COMMON_SOURCE_DIR}/showmsg.h"
  66. "${COMMON_SOURCE_DIR}/socket.h"
  67. "${COMMON_SOURCE_DIR}/strlib.h"
  68. "${COMMON_SOURCE_DIR}/timer.h"
  69. "${COMMON_SOURCE_DIR}/utils.h"
  70. CACHE INTERNAL "common_base headers" )
  71. set( COMMON_BASE_SOURCES
  72. "${COMMON_SOURCE_DIR}/core.c"
  73. "${COMMON_SOURCE_DIR}/db.c"
  74. "${COMMON_SOURCE_DIR}/ers.c"
  75. "${COMMON_SOURCE_DIR}/grfio.c"
  76. "${COMMON_SOURCE_DIR}/lock.c"
  77. "${COMMON_SOURCE_DIR}/malloc.c"
  78. "${COMMON_SOURCE_DIR}/mapindex.c"
  79. "${COMMON_SOURCE_DIR}/md5calc.c"
  80. "${COMMON_SOURCE_DIR}/nullpo.c"
  81. "${COMMON_SOURCE_DIR}/plugins.c"
  82. "${COMMON_SOURCE_DIR}/random.c"
  83. "${COMMON_SOURCE_DIR}/showmsg.c"
  84. "${COMMON_SOURCE_DIR}/socket.c"
  85. "${COMMON_SOURCE_DIR}/strlib.c"
  86. "${COMMON_SOURCE_DIR}/timer.c"
  87. "${COMMON_SOURCE_DIR}/utils.c"
  88. CACHE INTERNAL "common_base sources" )
  89. set( LIBRARIES ${ZLIB_LIBRARIES} )
  90. set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MT19937AR_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} )
  91. set( DEFINITIONS "${GLOBAL_DEFINITIONS}" )
  92. set( SOURCE_FILES ${MT19937AR_HEADERS} ${MT19937AR_SOURCES} ${COMMON_BASE_HEADERS} ${COMMON_BASE_SOURCES} )
  93. source_group( mt19937ar FILES ${MT19937AR_HEADERS} ${MT19937AR_SOURCES} )
  94. source_group( common FILES ${COMMON_BASE_HEADERS} ${COMMON_BASE_SOURCES} )
  95. add_library( common_base ${SOURCE_FILES} )
  96. target_link_libraries( common_base ${LIBRARIES} )
  97. set_target_properties( common_base PROPERTIES COMPILE_FLAGS "${DEFINITIONS}" )
  98. include_directories( ${INCLUDE_DIRS} )
  99. set( HAVE_common_base ON CACHE INTERNAL "" )
  100. set( TARGET_LIST ${TARGET_LIST} common_base CACHE INTERNAL "" )
  101. message( STATUS "Creating target common_base - done" )
  102. else()
  103. message( STATUS "Skipping target common_base (requires ZLIB)" )
  104. unset( HAVE_common_base CACHE )
  105. endif()
  106. #
  107. # common_sql
  108. #
  109. if( HAVE_common_base AND WITH_MYSQL )
  110. message( STATUS "Creating target common_sql" )
  111. set( COMMON_SQL_HEADERS
  112. ${COMMON_ALL_HEADERS}
  113. "${CMAKE_CURRENT_SOURCE_DIR}/sql.h"
  114. CACHE INTERNAL "common_sql headers" )
  115. set( COMMON_SQL_SOURCES
  116. "${CMAKE_CURRENT_SOURCE_DIR}/sql.c"
  117. CACHE INTERNAL "common_sql sources" )
  118. set( DEPENDENCIES common_base )
  119. set( LIBRARIES ${MYSQL_LIBRARIES} )
  120. set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} )
  121. set( DEFINITIONS "${GLOBAL_DEFINITIONS}" )
  122. set( SOURCE_FILES ${COMMON_SQL_HEADERS} ${COMMON_SQL_SOURCES} )
  123. source_group( common FILES ${COMMON_SQL_HEADERS} ${COMMON_SQL_SOURCES} )
  124. add_library( common_sql ${SOURCE_FILES} )
  125. add_dependencies( common_sql ${DEPENDENCIES} )
  126. target_link_libraries( common_sql ${LIBRARIES} ${DEPENDENCIES} )
  127. set_target_properties( common_sql PROPERTIES COMPILE_FLAGS "${DEFINITIONS}" )
  128. include_directories( ${INCLUDE_DIRS} )
  129. set( HAVE_common_sql ON CACHE INTERNAL "" )
  130. set( TARGET_LIST ${TARGET_LIST} common_sql CACHE INTERNAL "" )
  131. message( STATUS "Creating target common_sql - done" )
  132. else()
  133. message( STATUS "Skipping target common_sql (requires common_base and MYSQL)" )
  134. unset( HAVE_common_sql CACHE )
  135. endif()