mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 14:57:44 +00:00

- usage: tools > options > debugging > general > enable edit and continue (tick all options within its subtree) - attach vs to a server, edit its code, alt + f10
104 lines
4.3 KiB
CMake
104 lines
4.3 KiB
CMake
cmake_minimum_required(VERSION 2.6)
|
|
cmake_policy(SET CMP0015 NEW)
|
|
project(Sapphire)
|
|
|
|
include_directories("../../libraries/external/ChaiScript-6.0.0/include/")
|
|
include_directories("../../libraries/sapphire/datReader/")
|
|
include_directories("../")
|
|
|
|
file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*")
|
|
file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*")
|
|
|
|
set(SERVER_COMMON_DIR ../Server_Common)
|
|
set(Boost_USE_STATIC_LIBS ON)
|
|
|
|
if(UNIX)
|
|
include_directories("/usr/include/mysql/")
|
|
message(STATUS "Setting GCC flags")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
|
|
|
find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system)
|
|
if(Boost_FOUND)
|
|
set(BOOST_LIBRARY_DIR ${Boost_LIBRARY_DIR})
|
|
else()
|
|
if (EXISTS /opt/build_libs/${SAPPHIRE_BOOST_FOLDER_NAME})
|
|
set(Boost_INCLUDE_DIR /opt/build_libs/${SAPPHIRE_BOOST_FOLDER_NAME})
|
|
set(BOOST_LIBRARYDIR /opt/build_libs/${SAPPHIRE_BOOST_FOLDER_NAME}/stage/lib)
|
|
find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system)
|
|
else()
|
|
message(FATAL_ERROR "Unable to find boost ${SAPPHIRE_BOOST_VER} package!")
|
|
endif()
|
|
endif()
|
|
else()
|
|
add_definitions(-D_WIN32_WINNT=0x601)
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/")
|
|
message(STATUS "Setting MSVC flags")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
|
|
# edit and continue
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
message(STATUS "Disabling /SAFESEH")
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
|
|
endif()
|
|
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME})
|
|
message(STATUS "Using boost in /src/lib")
|
|
set(Boost_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME})
|
|
set(BOOST_LIBRARYDIR ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME}/lib32-msvc-14.0)
|
|
else()
|
|
find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system)
|
|
if(Boost_FOUND)
|
|
set(BOOST_LIBRARY_DIR ${Boost_LIBRARY_DIR})
|
|
elseif ((EXISTS $ENV{BOOST_ROOT_DIR}) AND (EXISTS $ENV{BOOST_LIB_DIR}))
|
|
set(Boost_INCLUDE_DIR $ENV{BOOST_ROOT_DIR})
|
|
set(BOOST_LIBRARYDIR $ENV{BOOST_LIB_DIR})
|
|
else()
|
|
message(FATAL_ERROR "SapphireError: Unable to find boost ${SAPPHIRE_BOOST_VER} package and environment variables BOOST_ROOT_DIR and BOOST_LIB_DIR not set!")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
include_directories(${Boost_INCLUDE_DIR})
|
|
|
|
link_directories(${BOOST_LIBRARYDIR})
|
|
link_directories(${SERVER_COMMON_DIR})
|
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/sapphire/datReader)
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
# 32 bit link
|
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x86)
|
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/zlib/x86)
|
|
else()
|
|
# 64 bit link
|
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x64)
|
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/zlib/x64)
|
|
endif()
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/")
|
|
add_executable(server_rest ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES})
|
|
add_dependencies(server_rest Common xivdat)
|
|
|
|
set_target_properties(server_rest PROPERTIES
|
|
CXX_STANDARD 14
|
|
CXX_STANDARD_REQUIRED ON
|
|
CXX_EXTENSIONS ON
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"
|
|
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"
|
|
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"
|
|
)
|
|
|
|
if(MSVC)
|
|
message(STATUS "Enabling Edit and Continue..")
|
|
set_property(TARGET server_rest APPEND_STRING PROPERTY COMPILE_FLAGS " /INCREMENTAL /ZI")
|
|
endif()
|
|
|
|
if (UNIX)
|
|
target_link_libraries (server_rest Common xivdat pthread mysqlclient dl z)
|
|
else()
|
|
target_link_libraries (server_rest Common xivdat libmysql zlib1)
|
|
endif()
|
|
|
|
target_link_libraries( server_rest ${Boost_LIBRARIES} ${Boost_LIBRARIES} )
|