From 7535e5f47353658f966eb4dce344154678463e04 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 29 Oct 2018 19:14:54 +0800 Subject: [PATCH] cmake: add Findrados.cmake and use it ceph has extracted libradospp out from librados. the former offers the C++ API, while the latter offers the C API. Signed-off-by: Kefu Chai --- CMakeLists.txt | 3 ++- cmake/modules/Findradospp.cmake | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 cmake/modules/Findradospp.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a4bdb6..96972a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -731,7 +731,8 @@ option(WITH_LIBRADOS "Build with librados" OFF) if(WITH_LIBRADOS) list(APPEND SOURCES utilities/env_librados.cc) - list(APPEND THIRDPARTY_LIBS rados) + find_package(radospp REQUIRED) + list(APPEND THIRDPARTY_LIBS rados::radospp) endif() if(WIN32) diff --git a/cmake/modules/Findradospp.cmake b/cmake/modules/Findradospp.cmake new file mode 100644 index 0000000..4f1672a --- /dev/null +++ b/cmake/modules/Findradospp.cmake @@ -0,0 +1,31 @@ +# - Find RADOS +# Find librados library and includes +# +# RADOSPP_INCLUDE_DIR - where to find librados.hpp. +# RADOSPP_LIBRARIES - List of libraries when using radospp. +# radospp_FOUND - True if radospp found. + +find_path(RADOSPP_INCLUDE_DIR + NAMES rados/librados.hpp + HINTS ${LIBRADOS_ROOT}/include) + +find_library(RADOSPP_LIBRARIES + NAMES radospp + HINTS ${LIBRADOS_ROOT}/lib) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(radospp + FOUND_VAR radospp_FOUND + REQUIRED_VARS RADOSPP_LIBRARIES RADOSPP_INCLUDE_DIR) + +mark_as_advanced( + RADOSPP_INCLUDE_DIR + RADOSPP_LIBRARIES) + +if(radospp_FOUND AND NOT (TARGET rados::radospp)) + add_library(rados::radospp UNKNOWN IMPORTED) + set_target_properties(rados::radospp PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${RADOSPP_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${RADOSPP_LIBRARIES}") +endif() -- 2.19.1