diff --git a/CMakeModules/FindRocksDB.cmake b/CMakeModules/FindRocksDB.cmake index b0692b0..984d3f2 100644 --- a/CMakeModules/FindRocksDB.cmake +++ b/CMakeModules/FindRocksDB.cmake @@ -39,5 +39,49 @@ find_package_handle_standard_args(ROCKSDB "Could NOT find ROCKSDB" ) +if(ROCKSDB_FOUND) + FIND_PACKAGE(ZLIB REQUIRED) + + include(SelectLibraryConfigurations) + # Find Snappy library + find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd) + find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy) + select_library_configurations(SNAPPY) + find_package_handle_standard_args(SNAPPY + FOUND_VAR + SNAPPY_FOUND + REQUIRED_VARS + SNAPPY_LIBRARY + FAIL_MESSAGE + "Could NOT find SNAPPY" + ) + + # Find LZ4 library + find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) + find_library(LZ4_LIBRARY_RELEASE NAMES lz4) + select_library_configurations(LZ4) + find_package_handle_standard_args(LZ4 + FOUND_VAR + LZ4_FOUND + REQUIRED_VARS + LZ4_LIBRARY + FAIL_MESSAGE + "Could NOT find LZ4" + ) + + # Find ZSTD library + find_library(ZSTD_LIBRARY_DEBUG NAMES zstdd) + find_library(ZSTD_LIBRARY_RELEASE NAMES zstd) + select_library_configurations(ZSTD) + find_package_handle_standard_args(ZSTD + FOUND_VAR + ZSTD_FOUND + REQUIRED_VARS + ZSTD_LIBRARY + FAIL_MESSAGE + "Could NOT find ZSTD_" + ) +endif(ROCKSDB_FOUND) + set(ROCKSDB_INCLUDE_DIRS ${ROCKSDB_INCLUDE_DIR} ) set(ROCKSDB_LIBRARIES ${ROCKSDB_LIBRARY}) diff --git a/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt b/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt index ecaac34..b4ec764 100644 --- a/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt +++ b/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt @@ -34,7 +34,19 @@ IF(ROCKSDB_FOUND OR RocksDB_FOUND) RocksDBCacheDriver.cpp ) - SET(TARGET_LIBRARIES_VARS ROCKSDB_LIBRARY ZLIB_LIBRARY) + if(SNAPPY_FOUND) + SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${SNAPPY_LIBRARY}) + endif(SNAPPY_FOUND) + + if(LZ4_FOUND) + SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${LZ4_LIBRARY}) + endif(LZ4_FOUND) + + if(ZSTD_FOUND) + SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${ZSTD_LIBRARY}) + endif(ZSTD_FOUND) + + SET(TARGET_LIBRARIES_VARS ROCKSDB_LIBRARY ZLIB_LIBRARY ROCKSDB_DEPENDENT_LIBRARY) IF(MSVC) SET(TARGET_EXTERNAL_LIBRARIES ws2_32 winmm rpcrt4 shlwapi)