--- /dev/null
+From 7535e5f47353658f966eb4dce344154678463e04 Mon Sep 17 00:00:00 2001
+From: Kefu Chai <tchaikov@gmail.com>
+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 <tchaikov@gmail.com>
+---
+ CMakeLists.txt | 3 ++-
+ cmake/modules/Findradospp.cmake | 33 +++++++++++++++++++++++++++++++++
+ 2 files changed, 35 insertions(+), 1 deletion(-)
+ create mode 100644 cmake/modules/Findradospp.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6cb80cd10..48c61f928 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 000000000..18822adb9
+--- /dev/null
++++ b/cmake/modules/Findradospp.cmake
+@@ -0,0 +1,33 @@
++# - 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
++ DEFAULT_MSG RADOSPP_LIBRARIES RADOSPP_INCLUDE_DIR)
++
++mark_as_advanced(
++ RADOSPP_INCLUDE_DIR
++ RADOSPP_LIBRARIES)
++
++message(STATUS "${RADOSPP_INCLUDE_DIR}")
++message(STATUS "${RADOSPP_LIBRARIES}")
++message(STATUS "${radospp_FOUND}")
++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
+
# for rocksdb
case $(lsb_release -si) in
Ubuntu|Debian|Devuan)
- install g++ libsnappy-dev zlib1g-dev libbz2-dev librados-dev
+ install g++ libsnappy-dev zlib1g-dev libbz2-dev libradospp-dev
;;
CentOS|Fedora|RedHatEnterpriseServer)
- install gcc-c++.x86_64 snappy-devel zlib zlib-devel bzip2 bzip2-devel librados2-devel.x86_64
+ install gcc-c++.x86_64 snappy-devel zlib zlib-devel bzip2 bzip2-devel libradospp-devel.x86_64
;;
*)
echo "$(lsb_release -si) is unknown, $@ will have to be installed manually."
# compile code
cd rocksdb
+patch -p1 $(dirname $0)/0001-cmake-add-Findrados.cmake-and-use-it.patch
+
mkdir build && cd build && cmake -DWITH_LIBRADOS=ON -DWITH_SNAPPY=ON -DWITH_GFLAGS=OFF -DFAIL_ON_WARNINGS=OFF ..
make rocksdb_env_librados_test -j8