Skip to content

Commit

Permalink
Build snappy in the project
Browse files Browse the repository at this point in the history
  • Loading branch information
acelyc111 committed Dec 5, 2023
1 parent 41ff58d commit 7a3e097
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cmake_modules/BaseFunctions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ function(dsn_setup_thirdparty_libs)
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)
find_package(Snappy REQUIRED)
find_package(zstd)
find_package(lz4)
if(USE_JEMALLOC)
Expand Down
38 changes: 38 additions & 0 deletions cmake_modules/FindSnappy.cmake
Original file line number Diff line number Diff line change
@@ -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)
27 changes: 27 additions & 0 deletions thirdparty/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,33 @@ ExternalProject_Add(jemalloc
DOWNLOAD_NO_PROGRESS true
)

set(SNAPPY_OPTIONS
-DCMAKE_INSTALL_PREFIX=${TP_OUTPUT}
-DBUILD_SHARED_LIBS=ON
-DSNAPPY_BUILD_TESTS=OFF
-DSNAPPY_BUILD_BENCHMARKS=OFF
-DSNAPPY_FUZZING_BUILD=OFF
-DSNAPPY_INSTALL=ON)
execute_process(COMMAND arch OUTPUT_VARIABLE ARCH_NAME OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "ARCH_NAME = ${ARCH_NAME}")
if (ARCH_NAME EQUAL "x86_64")
set(SNAPPY_OPTIONS
${SNAPPY_OPTIONS}
-DSNAPPY_REQUIRE_AVX=ON
-DSNAPPY_REQUIRE_AVX2=ON)
endif ()
ExternalProject_Add(snappy
URL ${OSS_URL_PREFIX}/snappy-1.1.10.tar.gz
https://github.com/google/snappy/archive/refs/tags/1.1.10.tar.gz
URL_MD5 70153395ebe6d72febe2cf2e40026a44
PATCH_COMMAND ""
CMAKE_ARGS ${SNAPPY_OPTIONS}
BUILD_COMMAND make -j${PARALLEL}
INSTALL_COMMAND make install
DOWNLOAD_EXTRACT_TIMESTAMP true
DOWNLOAD_NO_PROGRESS true
)

option(ROCKSDB_PORTABLE "Minimum CPU arch to support, or 0 = current CPU, 1 = baseline CPU" 0)
set(ROCKSDB_OPTIONS
-DFAIL_ON_WARNINGS=OFF
Expand Down

0 comments on commit 7a3e097

Please sign in to comment.