79 lines
1.9 KiB
CMake
79 lines
1.9 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
project(m2dev-server-src)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_MODULE_PATH
|
|
${CMAKE_MODULE_PATH}
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/buildtool"
|
|
)
|
|
|
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/_install")
|
|
|
|
if(WIN32)
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
|
|
|
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
|
|
|
if (MSVC)
|
|
add_compile_options(/MP)
|
|
endif()
|
|
else()
|
|
include_directories(${MARIADB_INCLUDE_DIR})
|
|
|
|
add_compile_options("$<$<CXX_COMPILER_ID:GNU>:-finput-charset=UTF-8>")
|
|
endif()
|
|
|
|
add_compile_definitions(
|
|
$<$<PLATFORM_ID:Windows>:OS_WINDOWS>
|
|
$<$<PLATFORM_ID:FreeBSD>:OS_FREEBSD>
|
|
)
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
|
|
# Derive a version string from git for the db target
|
|
find_package(Git QUIET)
|
|
if(GIT_FOUND)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_SOURCE_DIR} describe --always --dirty --tags
|
|
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET
|
|
)
|
|
endif()
|
|
|
|
if(NOT GIT_DESCRIBE_VERSION)
|
|
if(GIT_FOUND)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_SOURCE_DIR} rev-parse --short HEAD
|
|
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET
|
|
)
|
|
else()
|
|
set(GIT_DESCRIBE_VERSION "unknown")
|
|
endif()
|
|
endif()
|
|
|
|
if(NOT GIT_DESCRIBE_VERSION)
|
|
set(GIT_DESCRIBE_VERSION "unknown")
|
|
endif()
|
|
|
|
add_definitions(-DNOMINMAX)
|
|
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
|
|
include_directories(src)
|
|
include_directories(include)
|
|
|
|
# MariDB includes
|
|
include_directories(${CMAKE_BINARY_DIR}/vendor/mariadb-connector-c-3.4.5/include)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/mariadb-connector-c-3.4.5/include)
|
|
|
|
add_subdirectory(src)
|
|
add_subdirectory(vendor)
|