diff --git a/cmake_modules/BaseFunctions.cmake b/cmake_modules/BaseFunctions.cmake index 86b821648d..27994adf50 100644 --- a/cmake_modules/BaseFunctions.cmake +++ b/cmake_modules/BaseFunctions.cmake @@ -327,6 +327,17 @@ function(dsn_setup_thirdparty_libs) set(DEFAULT_THIRDPARTY_LIBS ${THRIFT_LIB} fmt::fmt CACHE STRING "default thirdparty libs" FORCE) # rocksdb + file(GLOB ROCKSDB_DEPENDS_MODULE_PATH ${THIRDPARTY_ROOT}/build/Source/rocksdb/cmake/modules) + if(NOT ROCKSDB_DEPENDS_MODULE_PATH) + message(WARNING "Cannot find RocksDB depends cmake modules path, might not find snappy, zstd, lz4") + endif() + list(APPEND CMAKE_MODULE_PATH "${ROCKSDB_DEPENDS_MODULE_PATH}") + find_package(Snappy REQUIRED) + find_package(zstd) + find_package(lz4) + if(USE_JEMALLOC) + find_package(Jemalloc REQUIRED) + endif() find_package(RocksDB REQUIRED) # libhdfs diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake new file mode 100644 index 0000000000..239b7c92b4 --- /dev/null +++ b/cmake_modules/FindSnappy.cmake @@ -0,0 +1,38 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# - Find SNAPPY (snappy.h, libsnappy.a, libsnappy.so, and libsnappy.so.1) +# This module defines +# SNAPPY_INCLUDE_DIR, directory containing headers +# SNAPPY_SHARED_LIB, path to snappy's shared library +# SNAPPY_STATIC_LIB, path to snappy's static library +# SNAPPY_FOUND, whether snappy has been found + +find_path(SNAPPY_INCLUDE_DIR snappy.h + # make sure we don't accidentally pick up a different version + NO_CMAKE_SYSTEM_PATH + NO_SYSTEM_ENVIRONMENT_PATH) +find_library(SNAPPY_SHARED_LIB snappy + NO_CMAKE_SYSTEM_PATH + NO_SYSTEM_ENVIRONMENT_PATH) +find_library(SNAPPY_STATIC_LIB libsnappy.a + NO_CMAKE_SYSTEM_PATH + NO_SYSTEM_ENVIRONMENT_PATH) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Snappy REQUIRED_VARS + SNAPPY_SHARED_LIB SNAPPY_STATIC_LIB SNAPPY_INCLUDE_DIR) diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index d41da9e525..4cfaf1438b 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -404,7 +404,7 @@ set(ROCKSDB_OPTIONS -DWITH_TESTS=OFF -DWITH_GFLAGS=OFF -DUSE_RTTI=ON - -DROCKSDB_BUILD_SHARED=OFF + -DROCKSDB_BUILD_SHARED=ON -DCMAKE_BUILD_TYPE=Release -DWITH_JEMALLOC=${USE_JEMALLOC} -DJEMALLOC_ROOT_DIR=${TP_OUTPUT}