Commit 4971f1e6 authored by Ramon Nou's avatar Ramon Nou
Browse files

add FindRocksDB

parent 2d050a5b
Loading
Loading
Loading
Loading
Loading
+135 −0
Original line number Diff line number Diff line
# 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()
+0 −2
Original line number Diff line number Diff line
@@ -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 \