* [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency
@ 2020-05-18 5:22 Thomas Petazzoni
2020-05-18 5:22 ` [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library Thomas Petazzoni
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2020-05-18 5:22 UTC (permalink / raw)
To: buildroot
snappy is not a mandatory dependency to build leveldb. Back when it
was introduced in Buildroot, as of version 1.18, the build logic
already made snappy an optional dependency.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
package/leveldb/Config.in | 1 -
package/leveldb/leveldb.mk | 5 ++++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/package/leveldb/Config.in b/package/leveldb/Config.in
index c767b88645..c4279fcb64 100644
--- a/package/leveldb/Config.in
+++ b/package/leveldb/Config.in
@@ -3,7 +3,6 @@ config BR2_PACKAGE_LEVELDB
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_HAS_THREADS
- select BR2_PACKAGE_SNAPPY
help
LevelDB is a fast key-value storage library written at Google
that provides an ordered mapping from string keys to string
diff --git a/package/leveldb/leveldb.mk b/package/leveldb/leveldb.mk
index cf3c096f5d..684b618679 100644
--- a/package/leveldb/leveldb.mk
+++ b/package/leveldb/leveldb.mk
@@ -9,9 +9,12 @@ LEVELDB_SITE = $(call github,google,leveldb,$(LEVELDB_VERSION))
LEVELDB_LICENSE = BSD-3-Clause
LEVELDB_LICENSE_FILES = LICENSE
LEVELDB_INSTALL_STAGING = YES
-LEVELDB_DEPENDENCIES = snappy
LEVELDB_CONF_OPTS = \
-DLEVELDB_BUILD_BENCHMARKS=OFF \
-DLEVELDB_BUILD_TESTS=OFF
+ifeq ($(BR2_PACKAGE_SNAPPY),y)
+LEVELDB_DEPENDENCIES += snappy
+endif
+
$(eval $(cmake-package))
--
2.26.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library
2020-05-18 5:22 [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Thomas Petazzoni
@ 2020-05-18 5:22 ` Thomas Petazzoni
2020-06-01 20:04 ` Peter Korsgaard
2020-05-26 20:50 ` [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Yann E. MORIN
2020-06-01 20:04 ` Peter Korsgaard
2 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2020-05-18 5:22 UTC (permalink / raw)
To: buildroot
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>
---
...make-Use-find_package-to-find-Snappy.patch | 98 +++++++++++++++++++
1 file changed, 98 insertions(+)
create mode 100644 package/leveldb/0004-cmake-Use-find_package-to-find-Snappy.patch
diff --git a/package/leveldb/0004-cmake-Use-find_package-to-find-Snappy.patch b/package/leveldb/0004-cmake-Use-find_package-to-find-Snappy.patch
new file mode 100644
index 0000000000..2626e88652
--- /dev/null
+++ b/package/leveldb/0004-cmake-Use-find_package-to-find-Snappy.patch
@@ -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
+
--
2.26.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency
2020-05-18 5:22 [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Thomas Petazzoni
2020-05-18 5:22 ` [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library Thomas Petazzoni
@ 2020-05-26 20:50 ` Yann E. MORIN
2020-06-01 20:04 ` Peter Korsgaard
2 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2020-05-26 20:50 UTC (permalink / raw)
To: buildroot
Thomas, All,
On 2020-05-18 07:22 +0200, Thomas Petazzoni spake thusly:
> snappy is not a mandatory dependency to build leveldb. Back when it
> was introduced in Buildroot, as of version 1.18, the build logic
> already made snappy an optional dependency.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Both applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> package/leveldb/Config.in | 1 -
> package/leveldb/leveldb.mk | 5 ++++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/package/leveldb/Config.in b/package/leveldb/Config.in
> index c767b88645..c4279fcb64 100644
> --- a/package/leveldb/Config.in
> +++ b/package/leveldb/Config.in
> @@ -3,7 +3,6 @@ config BR2_PACKAGE_LEVELDB
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
> depends on BR2_TOOLCHAIN_HAS_THREADS
> - select BR2_PACKAGE_SNAPPY
> help
> LevelDB is a fast key-value storage library written at Google
> that provides an ordered mapping from string keys to string
> diff --git a/package/leveldb/leveldb.mk b/package/leveldb/leveldb.mk
> index cf3c096f5d..684b618679 100644
> --- a/package/leveldb/leveldb.mk
> +++ b/package/leveldb/leveldb.mk
> @@ -9,9 +9,12 @@ LEVELDB_SITE = $(call github,google,leveldb,$(LEVELDB_VERSION))
> LEVELDB_LICENSE = BSD-3-Clause
> LEVELDB_LICENSE_FILES = LICENSE
> LEVELDB_INSTALL_STAGING = YES
> -LEVELDB_DEPENDENCIES = snappy
> LEVELDB_CONF_OPTS = \
> -DLEVELDB_BUILD_BENCHMARKS=OFF \
> -DLEVELDB_BUILD_TESTS=OFF
>
> +ifeq ($(BR2_PACKAGE_SNAPPY),y)
> +LEVELDB_DEPENDENCIES += snappy
> +endif
> +
> $(eval $(cmake-package))
> --
> 2.26.2
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency
2020-05-18 5:22 [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Thomas Petazzoni
2020-05-18 5:22 ` [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library Thomas Petazzoni
2020-05-26 20:50 ` [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Yann E. MORIN
@ 2020-06-01 20:04 ` Peter Korsgaard
2 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2020-06-01 20:04 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:
> snappy is not a mandatory dependency to build leveldb. Back when it
> was introduced in Buildroot, as of version 1.18, the build logic
> already made snappy an optional dependency.
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Committed to 2020.02.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library
2020-05-18 5:22 ` [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library Thomas Petazzoni
@ 2020-06-01 20:04 ` Peter Korsgaard
0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2020-06-01 20:04 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:
> 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>
Committed to 2020.02.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-06-01 20:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-18 5:22 [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Thomas Petazzoni
2020-05-18 5:22 ` [Buildroot] [PATCH 2/2] package/leveldb: fix detection of the snappy library Thomas Petazzoni
2020-06-01 20:04 ` Peter Korsgaard
2020-05-26 20:50 ` [Buildroot] [PATCH 1/2] package/leveldb: turn snappy into an optional dependency Yann E. MORIN
2020-06-01 20:04 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox