40 lines
808 B
CMake
40 lines
808 B
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
project(core CXX)
|
|
|
|
find_package(fmt REQUIRED)
|
|
find_package(range-v3 REQUIRED)
|
|
find_package(cxxopts REQUIRED)
|
|
find_package(Protobuf CONFIG REQUIRED)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
add_library(core STATIC
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/protocol/messenger/messenger.proto"
|
|
fib.cpp
|
|
)
|
|
|
|
set(PROTO_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
|
target_include_directories(core
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
"$<BUILD_INTERFACE:${PROTO_BINARY_DIR}>"
|
|
)
|
|
|
|
target_link_libraries(core
|
|
PRIVATE
|
|
fmt::fmt
|
|
range-v3::range-v3
|
|
cxxopts::cxxopts
|
|
PUBLIC
|
|
protobuf::libprotobuf
|
|
)
|
|
|
|
protobuf_generate(
|
|
TARGET core
|
|
IMPORT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/protocol"
|
|
PROTOC_OUT_DIR "${PROTO_BINARY_DIR}"
|
|
)
|