Use find_package to search for system lz4 before vendoring

This commit is contained in:
Mo Morsi
2019-08-28 11:37:35 -04:00
committed by Nik Bougalis
parent ce5d901e6e
commit 194fb2b86d
5 changed files with 96 additions and 55 deletions

View File

@@ -0,0 +1,22 @@
find_package (PkgConfig REQUIRED)
pkg_search_module (lz4_PC QUIET liblz4>=1.8)
if(static)
set(LZ4_LIB liblz4.a)
else()
set(LZ4_LIB lz4)
endif()
find_library (lz4
NAMES ${LZ4_LIB}
HINTS
${lz4_PC_LIBDIR}
${lz4_PC_LIBRARY_DIRS}
NO_DEFAULT_PATH)
find_path (LZ4_INCLUDE_DIR
NAMES lz4.h
HINTS
${lz4_PC_INCLUDEDIR}
${lz4_PC_INCLUDEDIRS}
NO_DEFAULT_PATH)

View File

@@ -73,7 +73,7 @@ ExternalProject_Add (libarchive
> >
TEST_COMMAND "" TEST_COMMAND ""
INSTALL_COMMAND "" INSTALL_COMMAND ""
DEPENDS lz4 DEPENDS lz4_lib
BUILD_BYPRODUCTS BUILD_BYPRODUCTS
<BINARY_DIR>/libarchive/${ep_lib_prefix}archive${lib_post}${ep_lib_suffix} <BINARY_DIR>/libarchive/${ep_lib_prefix}archive${lib_post}${ep_lib_suffix}
<BINARY_DIR>/libarchive/${ep_lib_prefix}archive${lib_post}_d${ep_lib_suffix} <BINARY_DIR>/libarchive/${ep_lib_prefix}archive${lib_post}_d${ep_lib_suffix}

View File

@@ -2,6 +2,22 @@
NIH dep: lz4 NIH dep: lz4
#]===================================================================] #]===================================================================]
add_library (lz4_lib STATIC IMPORTED GLOBAL)
if (NOT WIN32)
find_package(lz4)
endif()
if(lz4)
set_target_properties (lz4_lib PROPERTIES
IMPORTED_LOCATION_DEBUG
${lz4}
IMPORTED_LOCATION_RELEASE
${lz4}
INTERFACE_INCLUDE_DIRECTORIES
${LZ4_INCLUDE_DIR})
else()
ExternalProject_Add (lz4 ExternalProject_Add (lz4
PREFIX ${nih_cache_path} PREFIX ${nih_cache_path}
GIT_REPOSITORY https://github.com/lz4/lz4.git GIT_REPOSITORY https://github.com/lz4/lz4.git
@@ -42,10 +58,7 @@ ExternalProject_Add (lz4
) )
ExternalProject_Get_Property (lz4 BINARY_DIR) ExternalProject_Get_Property (lz4 BINARY_DIR)
ExternalProject_Get_Property (lz4 SOURCE_DIR) ExternalProject_Get_Property (lz4 SOURCE_DIR)
if (CMAKE_VERBOSE_MAKEFILE)
print_ep_logs (lz4)
endif ()
add_library (lz4_lib STATIC IMPORTED GLOBAL)
file (MAKE_DIRECTORY ${SOURCE_DIR}/lz4) file (MAKE_DIRECTORY ${SOURCE_DIR}/lz4)
set_target_properties (lz4_lib PROPERTIES set_target_properties (lz4_lib PROPERTIES
IMPORTED_LOCATION_DEBUG IMPORTED_LOCATION_DEBUG
@@ -54,6 +67,12 @@ set_target_properties (lz4_lib PROPERTIES
${BINARY_DIR}/${ep_lib_prefix}lz4${ep_lib_suffix} ${BINARY_DIR}/${ep_lib_prefix}lz4${ep_lib_suffix}
INTERFACE_INCLUDE_DIRECTORIES INTERFACE_INCLUDE_DIRECTORIES
${SOURCE_DIR}/lib) ${SOURCE_DIR}/lib)
if (CMAKE_VERBOSE_MAKEFILE)
print_ep_logs (lz4)
endif ()
endif()
add_dependencies (lz4_lib lz4) add_dependencies (lz4_lib lz4)
target_link_libraries (ripple_libs INTERFACE lz4_lib) target_link_libraries (ripple_libs INTERFACE lz4_lib)
exclude_if_included (lz4) exclude_if_included (lz4)

View File

@@ -84,7 +84,7 @@ ExternalProject_Add (rocksdb
LIST_SEPARATOR :: LIST_SEPARATOR ::
TEST_COMMAND "" TEST_COMMAND ""
INSTALL_COMMAND "" INSTALL_COMMAND ""
DEPENDS snappy lz4 DEPENDS snappy lz4_lib
BUILD_BYPRODUCTS BUILD_BYPRODUCTS
<BINARY_DIR>/${ep_lib_prefix}rocksdb${ep_lib_suffix} <BINARY_DIR>/${ep_lib_prefix}rocksdb${ep_lib_suffix}
<BINARY_DIR>/${ep_lib_prefix}rocksdb_d${ep_lib_suffix} <BINARY_DIR>/${ep_lib_prefix}rocksdb_d${ep_lib_suffix}

View File

@@ -1,7 +1,7 @@
cmake_minimum_required (VERSION 3.9.0) cmake_minimum_required (VERSION 3.9.0)
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/Builds/CMake) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/deps")
set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake ${CMAKE_MODULE_PATH})
include (CheckCXXCompilerFlag) include (CheckCXXCompilerFlag)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.11) if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.11)
include (FetchContent) include (FetchContent)