1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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
|