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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to