代码拉取完成,页面将自动刷新
# 设置cmake的最低版本和项目名称
cmake_minimum_required(VERSION 3.14)
cmake_policy(SET CMP0144 NEW)
project(KVRaftCpp)
# 开启生成 cpmpile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug")
endif()
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DDprintf_Debug)
endif()
if(CMAKE_PROJECT_NAME STREQUAL "KVRaftCpp")
option(KVRaftCpp_BUILD_EXAMPLES "Build KVRaftCpp examples" ON)
endif()
# 设置全局编译选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FILE_OFFSET_BITS=64 -std=c++20")
# 分别为调试和发布版本设置编译选项
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG")
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
find_package(Boost REQUIRED COMPONENTS system)
find_package(Protobuf REQUIRED)
find_package(gRPC CONFIG REQUIRED)
include_directories(
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/thirdParty/msd
${PROJECT_SOURCE_DIR}/thirdParty/scopeGuard
${PROJECT_SOURCE_DIR}/thirdParty/skipList
${PROJECT_SOURCE_DIR}/thirdParty/spdlog/include
)
# 设置项目库文件搜索路径 -L
link_directories(
${PROJECT_SOURCE_DIR}/lib
# /usr/local/lib
)
add_subdirectory(src)
if (KVRaftCpp_BUILD_EXAMPLES)
add_subdirectory(example)
endif()
# 添加格式化目标 start
# from : https://blog.csdn.net/guotianqing/article/details/121661067
add_custom_target(format
COMMAND bash ${PROJECT_SOURCE_DIR}/format.sh
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMAND echo "format done!"
)
# 添加格式化目标 end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。