Advertisement
Guest User

Untitled

a guest
Sep 25th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 3.51 KB | None | 0 0
  1. cmake_minimum_required(VERSION 3.16)
  2. project(Vibranium_Core)
  3. set(CMAKE_CXX_STANDARD 17)
  4. set(FLATBUFFERS_MAX_PARSING_DEPTH 16)
  5.  
  6. if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
  7.     execute_process(
  8.             COMMAND git rev-list --count HEAD
  9.             WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  10.             OUTPUT_VARIABLE GIT_VERSION
  11.             OUTPUT_STRIP_TRAILING_WHITESPACE
  12.     )
  13.     execute_process(
  14.             COMMAND git rev-parse --abbrev-ref HEAD
  15.             WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  16.             OUTPUT_VARIABLE GIT_BRANCH
  17.             OUTPUT_STRIP_TRAILING_WHITESPACE
  18.     )
  19.  
  20.     execute_process(
  21.             COMMAND git log -1 --format=%h
  22.             WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  23.             OUTPUT_VARIABLE GIT_COMMIT_HASH
  24.             OUTPUT_STRIP_TRAILING_WHITESPACE
  25.     )
  26.     execute_process(
  27.             COMMAND git --no-pager log -1 --format=%ai
  28.             WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  29.             OUTPUT_VARIABLE GIT_RELEASED_ON
  30.             OUTPUT_STRIP_TRAILING_WHITESPACE
  31.     )
  32. else(EXISTS "${CMAKE_SOURCE_DIR}/.git")
  33.     set(GIT_BRANCH "")
  34.     set(GIT_COMMIT_HASH "")
  35. endif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
  36.  
  37. message(STATUS "VibraniumCore current branch: ${GIT_BRANCH}")
  38. message(STATUS "VibraniumCore Version: ${GIT_VERSION}")
  39. message(STATUS "VibraniumCore commit hash: ${GIT_COMMIT_HASH}")
  40. message(STATUS "Released on: ${GIT_RELEASED_ON}")
  41.  
  42. message(STATUS "Generating version.h")
  43.  
  44. configure_file(
  45.         ${CMAKE_SOURCE_DIR}/cmake/version.h.in
  46.         ${CMAKE_SOURCE_DIR}/Source/Common/Version.h
  47. )
  48.  
  49.  
  50. find_package(Boost 1.72.0)
  51. find_package(Threads)
  52. find_package(Boost COMPONENTS serialization REQUIRED)
  53.  
  54. add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
  55. add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
  56. add_definitions(-DGIT_VERSION="${GIT_VERSION}")
  57. add_definitions(-DGIT_RELEASED_ON="${GIT_RELEASED_ON}")
  58.  
  59. if(NOT Boost_FOUND)
  60.     message(FATAL_ERROR "Could not find boost!")
  61. endif()
  62. include_directories(${Boost_INCLUDE_DIR})
  63.  
  64. if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
  65.     message(STATUS "Target is 64 bits")
  66.     if (WIN32)
  67.         set(WINXXBITS Win64)
  68.     endif(WIN32)
  69. else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
  70.     message(STATUS "Target is 32 bits")
  71.     if (WIN32)
  72.         set(WINXXBITS Win32)
  73.     endif(WIN32)
  74. endif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
  75.  
  76. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
  77. find_package(MySQL REQUIRED)
  78. find_package(Flatbuffers REQUIRED
  79.         PATHS /usr/local/flatbuffers)
  80.  
  81. find_package(Protobuf REQUIRED)
  82. find_package(gRPC CONFIG REQUIRED)
  83.  
  84. include_directories(${MYSQL_INCLUDE_DIR})
  85.  
  86. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Common)
  87. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/WorldServer)
  88. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/AuthServer)
  89. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/ClientEmulator)
  90. add_subdirectory(Tests)
  91.  
  92.  
  93. set_target_properties(VibraniumCoreTests PROPERTIES EXCLUDE_FROM_ALL TRUE)
  94. set_target_properties(gtest PROPERTIES EXCLUDE_FROM_ALL TRUE)
  95. set_target_properties(gmock PROPERTIES EXCLUDE_FROM_ALL TRUE)
  96. set_target_properties(gtest_main PROPERTIES EXCLUDE_FROM_ALL TRUE)
  97. set_target_properties(gmock_main PROPERTIES EXCLUDE_FROM_ALL TRUE)
  98.  
  99. set_target_properties(
  100.         Common WorldServer AuthServer ClientEmulator
  101.         PROPERTIES
  102.         ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
  103.         LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
  104.         RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
  105. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement