mirror of
https://git.busybox.net/buildroot.git
synced 2024-12-04 10:53:30 +08:00
package/leveldb: fix detection of the snappy library
Pull a patch pending in an upstream pull request to fix the detection of the snappy library when we are in static linking configurations. Fixes: https://bugs.busybox.net/show_bug.cgi?id=12671 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
39ef24f8bb
commit
a26d6338fb
@ -0,0 +1,98 @@
|
||||
From 450c1d88b3e1af34614294830b4dc0612d198d26 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pawe=C5=82=20Bylica?= <chfast@gmail.com>
|
||||
Date: Wed, 8 May 2019 10:42:03 +0200
|
||||
Subject: [PATCH] cmake: Use find_package() to find Snappy
|
||||
|
||||
Upstream: https://github.com/google/leveldb/pull/686/commits/3e73a396a082efc76e065ae974fe18c3bb27219d
|
||||
[Thomas: this commit allows to fix the detection of the snappy library
|
||||
in static link configurations]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
CMakeLists.txt | 12 ++++++++----
|
||||
cmake/FindSnappy.cmake | 31 +++++++++++++++++++++++++++++++
|
||||
2 files changed, 39 insertions(+), 4 deletions(-)
|
||||
create mode 100644 cmake/FindSnappy.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 78fead6..2efccda 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -6,6 +6,9 @@ cmake_minimum_required(VERSION 3.9)
|
||||
# Keep the version below in sync with the one in db.h
|
||||
project(leveldb VERSION 1.22.0 LANGUAGES C CXX)
|
||||
|
||||
+# Include local CMake modules.
|
||||
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
+
|
||||
# This project can use C11, but will gracefully decay down to C89.
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED OFF)
|
||||
@@ -31,13 +34,14 @@ option(LEVELDB_INSTALL "Install LevelDB's header and library" ON)
|
||||
include(TestBigEndian)
|
||||
test_big_endian(LEVELDB_IS_BIG_ENDIAN)
|
||||
|
||||
+find_package(Snappy)
|
||||
+
|
||||
include(CheckIncludeFile)
|
||||
check_include_file("unistd.h" HAVE_UNISTD_H)
|
||||
|
||||
include(CheckLibraryExists)
|
||||
check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_ATOMIC)
|
||||
check_library_exists(crc32c crc32c_value "" HAVE_CRC32C)
|
||||
-check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)
|
||||
check_library_exists(tcmalloc malloc "" HAVE_TCMALLOC)
|
||||
|
||||
include(CheckCXXSymbolExists)
|
||||
@@ -276,9 +280,9 @@ endif(HAVE_ATOMIC)
|
||||
if(HAVE_CRC32C)
|
||||
target_link_libraries(leveldb crc32c)
|
||||
endif(HAVE_CRC32C)
|
||||
-if(HAVE_SNAPPY)
|
||||
- target_link_libraries(leveldb snappy)
|
||||
-endif(HAVE_SNAPPY)
|
||||
+if(TARGET Snappy::snappy)
|
||||
+ target_link_libraries(leveldb Snappy::snappy)
|
||||
+endif()
|
||||
if(HAVE_TCMALLOC)
|
||||
target_link_libraries(leveldb tcmalloc)
|
||||
endif(HAVE_TCMALLOC)
|
||||
diff --git a/cmake/FindSnappy.cmake b/cmake/FindSnappy.cmake
|
||||
new file mode 100644
|
||||
index 0000000..88c1de9
|
||||
--- /dev/null
|
||||
+++ b/cmake/FindSnappy.cmake
|
||||
@@ -0,0 +1,31 @@
|
||||
+# Copyright 2019 The LevelDB Authors. All rights reserved.
|
||||
+# Use of this source code is governed by a BSD-style license that can be
|
||||
+# found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||
+
|
||||
+find_library(SNAPPY_LIBRARY
|
||||
+ NAMES snappy
|
||||
+ HINTS ${SNAPPY_ROOT_DIR}/lib
|
||||
+)
|
||||
+
|
||||
+find_path(SNAPPY_INCLUDE_DIR
|
||||
+ NAMES snappy.h
|
||||
+ HINTS ${SNAPPY_ROOT_DIR}/include
|
||||
+)
|
||||
+
|
||||
+include(FindPackageHandleStandardArgs)
|
||||
+find_package_handle_standard_args(Snappy DEFAULT_MSG SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR)
|
||||
+
|
||||
+mark_as_advanced(SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR)
|
||||
+
|
||||
+if(SNAPPY_FOUND)
|
||||
+ set(HAVE_SNAPPY TRUE) # For compatibity with generating port_config.h.
|
||||
+
|
||||
+ # Add imported targets.
|
||||
+ # Follow the package naming convetion 'Snappy::' from
|
||||
+ # https://github.com/google/snappy/blob/master/CMakeLists.txt#L211.
|
||||
+ add_library(Snappy::snappy UNKNOWN IMPORTED)
|
||||
+ set_target_properties(Snappy::snappy PROPERTIES
|
||||
+ IMPORTED_LOCATION ${SNAPPY_LIBRARY}
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES ${SNAPPY_INCLUDE_DIR}
|
||||
+ )
|
||||
+endif()
|
||||
--
|
||||
2.26.2
|
||||
|
Loading…
Reference in New Issue
Block a user