Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.16)
- project(Vibranium_Core)
- set(CMAKE_CXX_STANDARD 17)
- set(FLATBUFFERS_MAX_PARSING_DEPTH 16)
- if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
- execute_process(
- COMMAND git rev-list --count HEAD
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE GIT_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- execute_process(
- COMMAND git rev-parse --abbrev-ref HEAD
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE GIT_BRANCH
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- execute_process(
- COMMAND git log -1 --format=%h
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE GIT_COMMIT_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- execute_process(
- COMMAND git --no-pager log -1 --format=%ai
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE GIT_RELEASED_ON
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- else(EXISTS "${CMAKE_SOURCE_DIR}/.git")
- set(GIT_BRANCH "")
- set(GIT_COMMIT_HASH "")
- endif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
- message(STATUS "VibraniumCore current branch: ${GIT_BRANCH}")
- message(STATUS "VibraniumCore Version: ${GIT_VERSION}")
- message(STATUS "VibraniumCore commit hash: ${GIT_COMMIT_HASH}")
- message(STATUS "Released on: ${GIT_RELEASED_ON}")
- message(STATUS "Generating version.h")
- configure_file(
- ${CMAKE_SOURCE_DIR}/cmake/version.h.in
- ${CMAKE_SOURCE_DIR}/Source/Common/Version.h
- )
- find_package(Boost 1.72.0)
- find_package(Threads)
- find_package(Boost COMPONENTS serialization REQUIRED)
- add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
- add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
- add_definitions(-DGIT_VERSION="${GIT_VERSION}")
- add_definitions(-DGIT_RELEASED_ON="${GIT_RELEASED_ON}")
- if(NOT Boost_FOUND)
- message(FATAL_ERROR "Could not find boost!")
- endif()
- include_directories(${Boost_INCLUDE_DIR})
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- message(STATUS "Target is 64 bits")
- if (WIN32)
- set(WINXXBITS Win64)
- endif(WIN32)
- else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- message(STATUS "Target is 32 bits")
- if (WIN32)
- set(WINXXBITS Win32)
- endif(WIN32)
- endif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
- find_package(MySQL REQUIRED)
- find_package(Flatbuffers REQUIRED
- PATHS /usr/local/flatbuffers)
- find_package(Protobuf REQUIRED)
- find_package(gRPC CONFIG REQUIRED)
- include_directories(${MYSQL_INCLUDE_DIR})
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Common)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/WorldServer)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/AuthServer)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/ClientEmulator)
- add_subdirectory(Tests)
- set_target_properties(VibraniumCoreTests PROPERTIES EXCLUDE_FROM_ALL TRUE)
- set_target_properties(gtest PROPERTIES EXCLUDE_FROM_ALL TRUE)
- set_target_properties(gmock PROPERTIES EXCLUDE_FROM_ALL TRUE)
- set_target_properties(gtest_main PROPERTIES EXCLUDE_FROM_ALL TRUE)
- set_target_properties(gmock_main PROPERTIES EXCLUDE_FROM_ALL TRUE)
- set_target_properties(
- Common WorldServer AuthServer ClientEmulator
- PROPERTIES
- ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
- LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
- RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement