You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pegasus.apache.org by la...@apache.org on 2023/12/05 00:25:27 UTC
(incubator-pegasus) 01/01: Build snappy in the project
This is an automated email from the ASF dual-hosted git repository.
laiyingchun pushed a commit to branch dont_find_zpacks
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git
commit 7a3e097f860878902c3ce4fb517428485eec6831
Author: Yingchun Lai <la...@apache.org>
AuthorDate: Thu Nov 30 00:29:27 2023 +0800
Build snappy in the project
---
cmake_modules/BaseFunctions.cmake | 2 +-
cmake_modules/FindSnappy.cmake | 38 ++++++++++++++++++++++++++++++++++++++
thirdparty/CMakeLists.txt | 27 +++++++++++++++++++++++++++
3 files changed, 66 insertions(+), 1 deletion(-)
diff --git a/cmake_modules/BaseFunctions.cmake b/cmake_modules/BaseFunctions.cmake
index 1882353c8..27994adf5 100644
--- a/cmake_modules/BaseFunctions.cmake
+++ b/cmake_modules/BaseFunctions.cmake
@@ -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)
diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake
new file mode 100644
index 000000000..239b7c92b
--- /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 e95e24f83..409131ab5 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -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
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pegasus.apache.org
For additional commands, e-mail: commits-help@pegasus.apache.org