1 Star 0 Fork 10

itfanr/PureFlash

forked from cocalele/PureFlash 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
CMakeLists.txt 3.38 KB
一键复制 编辑 原始数据 按行查看 历史
cocalele 提交于 2022-11-12 19:29 . feature of shared client connection
cmake_minimum_required(VERSION 3.1)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0015 NEW)
endif()
project(PureFlash)
if(LINUX)
find_program(ANT ant)
if(NOT ANT)
message(FATAL_ERROR "ant not found! need it to build zookeeper c client")
endif()
endif(LINUX)
set(BUILD_ROOT_DIR ${CMAKE_BINARY_DIR})
set(CMAKE_BINARY_DIR ${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(THIRDPARTY ${CMAKE_CURRENT_SOURCE_DIR}/thirdParty)
set(ZOOKEEPER_SOURCE ${THIRDPARTY}/zookeeper/zookeeper-client/zookeeper-client-c)
set(ZOOKEEPER_INC ${ZOOKEEPER_SOURCE}/include ${ZOOKEEPER_SOURCE}/generated)
set(ZOOKEEPER_BIN ${ZOOKEEPER_SOURCE}/.libs)
macro(USE_ZOOKEEPER)
if(UNIX)
foreach(f ${ZOOKEEPER_SOURCE}/generated/zookeeper.jute.h ${ZOOKEEPER_SOURCE}/generated/zookeeper.jute.c)
if(NOT EXISTS "${f}")
execute_process(COMMAND ant clean
WORKING_DIRECTORY ${THIRDPARTY}/zookeeper)
execute_process(COMMAND ant compile_jute
WORKING_DIRECTORY ${THIRDPARTY}/zookeeper)
endif()
endforeach()
endif(UNIX)
add_definitions(-DTHREADED)# to use zookeeper multi thread library
include_directories(${ZOOKEEPER_INC})
link_directories(${ZOOKEEPER_BIN})
endmacro()
macro(use_cxx11)
if (CMAKE_VERSION VERSION_LESS "3.1")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
endif ()
else ()
set (CMAKE_CXX_STANDARD 11)
endif ()
endmacro(use_cxx11)
macro(USE_ISA_L)
execute_process(COMMAND ./autogen.sh
WORKING_DIRECTORY ${THIRDPARTY}/isa-l_crypto)
execute_process(COMMAND ./configure
WORKING_DIRECTORY ${THIRDPARTY}/isa-l_crypto)
execute_process(COMMAND make -j 4
WORKING_DIRECTORY ${THIRDPARTY}/isa-l_crypto)
# execute_process(COMMAND make install
# WORKING_DIRECTORY ${THIRDPARTY}/isa-l_crypto)
endmacro(USE_ISA_L)
INCLUDE(CheckIncludeFiles)
CHECK_INCLUDE_FILES("rdma/rdma_cma.h" HAVE_RDMA_H)
IF (HAVE_RDMA_H)
add_definitions(-DWITH_RDMA)
ENDIF (HAVE_RDMA_H)
USE_ZOOKEEPER()
USE_ISA_L()
add_compile_options (-fdiagnostics-color=always)
add_subdirectory(${ZOOKEEPER_SOURCE})
add_subdirectory(pfs)
add_subdirectory(common)
add_custom_target(scripts ALL
COMMAND cp -rpfu ${CMAKE_CURRENT_SOURCE_DIR}/scripts ${CMAKE_BINARY_DIR}
# COMMAND cp -rpfu ${ZOOKEEPER_SOURCE}/.libs/libzookeeper_mt.a ${CMAKE_BINARY_DIR}
COMMAND mv -f ${CMAKE_BINARY_DIR}/scripts/env.sh ${CMAKE_BINARY_DIR}/..
COMMAND cp -rp ${CMAKE_CURRENT_SOURCE_DIR}/testing ${BUILD_ROOT_DIR}
)
if (DEFINED FIO_DIR)
execute_process(COMMAND ./configure --pfbd-include=${CMAKE_CURRENT_SOURCE_DIR}/common/include --pfbd-lib=${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${FIO_DIR})
# add_custom_target(fio
# COMMAND rm -f ./fio
# COMMAND make
# DEPENDS ${CMAKE_BINARY_DIR}/libs5common.a
# WORKING_DIRECTORY ${FIO_DIR}
# )
# add_dependencies(fio s5common)
add_custom_command(OUTPUT ${FIO_DIR}/fio
COMMAND rm -f ./fio
COMMAND make
DEPENDS ${CMAKE_BINARY_DIR}/libs5common.a
WORKING_DIRECTORY ${FIO_DIR}
)
add_custom_target(fio DEPENDS ${FIO_DIR}/fio)
else()
message("Fio not defined and will not build. You can specify fio dir by -DFIO_DIR=<fio_source_dir>")
endif()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/itfanr/PureFlash.git
git@gitee.com:itfanr/PureFlash.git
itfanr
PureFlash
PureFlash
master

搜索帮助