From: Kefu Chai Date: Tue, 19 Sep 2017 05:07:59 +0000 (+0800) Subject: cmake: detect rocksdb's version X-Git-Tag: v13.0.1~859^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=987c1b3ec26974706adb5dd00b11248c2e784d86;p=ceph.git cmake: detect rocksdb's version Signed-off-by: Kefu Chai --- diff --git a/cmake/modules/BuildRocksDB.cmake b/cmake/modules/BuildRocksDB.cmake index bf8c34a2a6c1..f1706e2d67eb 100644 --- a/cmake/modules/BuildRocksDB.cmake +++ b/cmake/modules/BuildRocksDB.cmake @@ -45,4 +45,13 @@ macro(build_rocksdb) set_property(TARGET rocksdb PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/rocksdb/librocksdb.a") set(ROCKSDB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/include) set(ROCKSDB_LIBRARIES rocksdb) + foreach(ver "MAJOR" "MINOR" "PATCH") + file(STRINGS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h" ROCKSDB_VER_${ver}_LINE + REGEX "^#define[ \t]+ROCKSDB_${ver}[ \t]+[0-9]+$") + string(REGEX REPLACE "^#define[ \t]+ROCKSDB_${ver}[ \t]+([0-9]+)$" + "\\1" ROCKSDB_VERSION_${ver} "${ROCKSDB_VER_${ver}_LINE}") + unset(ROCKDB_VER_${ver}_LINE) + endforeach() + set(ROCKSDB_VERSION_STRING + "${ROCKSDB_VERSION_MAJOR}.${ROCKSDB_VERSION_MINOR}.${ROCKSDB_VERSION_PATCH}") endmacro() diff --git a/cmake/modules/Findrocksdb.cmake b/cmake/modules/Findrocksdb.cmake index e1aac5741132..f8369f73fc02 100644 --- a/cmake/modules/Findrocksdb.cmake +++ b/cmake/modules/Findrocksdb.cmake @@ -4,14 +4,31 @@ # ROCKSDB_INCLUDE_DIR is found. # ROCKSDB_LIBRARIES, libraries to link against to use Rocksdb. # ROCKSDB_FOUND, If false, do not try to use Rocksdb. +# ROCKSDB_VERSION_STRING +# ROCKSDB_VERSION_MAJOR +# ROCKSDB_VERSION_MINOR +# ROCKSDB_VERSION_PATCH find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h) find_library(ROCKSDB_LIBRARIES rocksdb) +if(ROCKSDB_INCLUDE_DIR AND EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h") + foreach(ver "MAJOR" "MINOR" "PATCH") + file(STRINGS "${ROCKSDB_INCLUDE_DIR}/version.h" ROCKSDB_VER_${ver}_LINE + REGEX "^#define[ \t]+ROCKSDB_${ver}[ \t]+[0-9]+$") + string(REGEX REPLACE "^#define[ \t]+ROCKSDB_${ver}[ \t]+([0-9]+)$" + "\\1" ROCKSDB_VERSION_${ver} "${ROCKDB_VER_${ver}_LINE}") + unset(${ROCKDB_VER_${ver}_LINE}) + endforeach() + set(ROCKSDB_VERSION_STRING + "${ROCKSDB_VERSION_MAJOR}.${ROCKSDB_VERSION_MINOR}.${ROCKSDB_VERSION_PATCH}") +endif() + include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(rocksdb DEFAULT_MSG - ROCKSDB_LIBRARIES ROCKSDB_INCLUDE_DIR) +find_package_handle_standard_args(rocksdb + REQUIRED_VARS ROCKSDB_LIBRARIES ROCKSDB_INCLUDE_DIR + VERSION_VAR ROCKSDB_VERSION_STRING) mark_as_advanced( ROCKSDB_INCLUDE_DIR