diff --git a/CMake/FindRocksDB.cmake b/CMake/FindRocksDB.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a94797a77d8096a4224c54f450a69c1dce07da86 --- /dev/null +++ b/CMake/FindRocksDB.cmake @@ -0,0 +1,135 @@ +# FindRocksDB +# --------- +# +# Find RocksDB include dirs and libraries. +# +# Use this module by invoking find_package with the form:: +# +# find_package(RocksDB +# [version] [EXACT] # Minimum or EXACT version e.g. 6.11.4 +# [REQUIRED] # Fail with error if RocksDB is not found +# ) +# +# Imported Targets +# ^^^^^^^^^^^^^^^^ +# +# This module provides the following imported targets, if found: +# +# ``RocksDB::rocksdb`` +# The RocksDB library +# +# Result Variables +# ^^^^^^^^^^^^^^^^ +# +# This will define the following variables: +# +# ``RocksDB_FOUND`` +# True if the system has the RocksDB library. +# ``RocksDB_VERSION`` +# The version of the RocksDB library which was found. +# ``RocksDB_INCLUDE_DIRS`` +# Include directories needed to use RocksDB. +# ``RocksDB_LIBRARIES`` +# Libraries needed to link to RocksDB. +# +# Cache Variables +# ^^^^^^^^^^^^^^^ +# +# The following cache variables may also be set: +# +# ``ROCKSDB_INCLUDE_DIR`` +# The directory containing ``rocksdb/db.h``. +# ``ROCKSDB_LIBRARY`` +# The path to the RocksDB library. +# + +# Standard names to search for +set(RocksDB_NAMES rocksdb rocksdb_static) + +if (NOT PKG_CONFIG_FOUND) + find_package(PkgConfig) +endif () + +if (PKG_CONFIG_FOUND) + pkg_check_modules(PC_ROCKSDB QUIET rocksdb) + + find_path(ROCKSDB_INCLUDE_DIR + NAMES rocksdb/db.h + PATHS ${PC_ROCKSDB_INCLUDE_DIRS} + PATH_SUFFIXES include) + + find_library(ROCKSDB_LIBRARY_RELEASE + NAMES ${RocksDB_NAMES} + PATHS ${PC_ROCKSDB_LIBRARY_DIRS} + PATH_SUFFIXES lib) + + set(RocksDB_VERSION_STRING ${PC_ROCKSDB_VERSION}) +else() + find_path(ROCKSDB_INCLUDE_DIR + NAMES rocksdb/db.h + PATH_SUFFIXES include) + + find_library(ROCKSDB_LIBRARY_RELEASE + NAMES ${RocksDB_NAMES} + PATH_SUFFIXES lib) +endif() + +# Allow ROCKSDB_LIBRARY to be set manually, as the location of the rocksdb library +if(NOT ROCKSDB_LIBRARY) + include(SelectLibraryConfigurations) + select_library_configurations(ROCKSDB) +endif() + +mark_as_advanced(ROCKSDB_INCLUDE_DIR ROCKSDB_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(RocksDB + REQUIRED_VARS ROCKSDB_LIBRARY ROCKSDB_INCLUDE_DIR + VERSION_VAR RocksDB_VERSION_STRING) + +if(RocksDB_FOUND) + set(RocksDB_INCLUDE_DIRS ${ROCKSDB_INCLUDE_DIR}) + + if(NOT RocksDB_LIBRARIES) + set(RocksDB_LIBRARIES ${ROCKSDB_LIBRARY}) + endif() + + if(NOT TARGET RocksDB::rocksdb) + add_library(RocksDB::rocksdb UNKNOWN IMPORTED) + set_target_properties(RocksDB::rocksdb PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${RocksDB_INCLUDE_DIRS}") + + set_target_properties(RocksDB::rocksdb PROPERTIES + IMPORTED_LOCATION "${ROCKSDB_LIBRARY}") + + find_library(LZ4_LIBRARY NAMES lz4) + if(LZ4_LIBRARY) + target_link_libraries(RocksDB::rocksdb INTERFACE ${LZ4_LIBRARY}) + endif() + + find_library(SNAPPY_LIBRARY NAMES snappy) + if(SNAPPY_LIBRARY) + target_link_libraries(RocksDB::rocksdb INTERFACE ${SNAPPY_LIBRARY}) + endif() + + find_library(ZSTD_LIBRARY NAMES zstd) + if(ZSTD_LIBRARY) + target_link_libraries(RocksDB::rocksdb INTERFACE ${ZSTD_LIBRARY}) + endif() + + find_library(ZLIB_LIBRARY NAMES z) + if(ZLIB_LIBRARY) + target_link_libraries(RocksDB::rocksdb INTERFACE ${ZLIB_LIBRARY}) + endif() + + find_library(BZIP2_LIBRARY NAMES bz2) + if(BZIP2_LIBRARY) + target_link_libraries(RocksDB::rocksdb INTERFACE ${BZIP2_LIBRARY}) + endif() + + find_library(URING_LIBRARY NAMES uring) + if(URING_LIBRARY) + target_link_libraries(RocksDB::rocksdb INTERFACE ${URING_LIBRARY}) + endif() + endif() +endif() diff --git a/docker/0.9.6/release/Dockerfile b/docker/0.9.6/release/Dockerfile index 9d97ab04cb944f33c36d6e47124e4a25f6166c49..901f8d402a1654fd1ec800bd3a988fbddac7b3a1 100644 --- a/docker/0.9.6/release/Dockerfile +++ b/docker/0.9.6/release/Dockerfile @@ -70,8 +70,6 @@ RUN cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=${GKFS_DEPS_PATH} \ -DCMAKE_INSTALL_PREFIX=${GKFS_PATH} \ - -DGKFS_RENAME_SUPPORT=ON \ - -DGKFS_SYMLINK_SUPPORT=ON \ -DGKFS_ENABLE_ROCKSDB=ON \ -DGKFS_ENABLE_PROMETHEUS=ON \ -DGKFS_ENABLE_CLIENT_METRICS=ON \