mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
Search for system libarchive before vendoring
This commit is contained in:
23
Builds/CMake/deps/Findlibarchive.cmake
Normal file
23
Builds/CMake/deps/Findlibarchive.cmake
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
find_package (PkgConfig REQUIRED)
|
||||||
|
pkg_search_module (libarchive_PC QUIET libarchive>=3.3.3)
|
||||||
|
|
||||||
|
if(static)
|
||||||
|
set(LIBARCHIVE_LIB libarchive.a)
|
||||||
|
else()
|
||||||
|
set(LIBARCHIVE_LIB archive)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
find_library (archive
|
||||||
|
NAMES ${LIBARCHIVE_LIB}
|
||||||
|
HINTS
|
||||||
|
${libarchive_PC_LIBDIR}
|
||||||
|
${libarchive_PC_LIBRARY_DIRS}
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
|
||||||
|
find_path (LIBARCHIVE_INCLUDE_DIR
|
||||||
|
NAMES archive.h
|
||||||
|
HINTS
|
||||||
|
${libarchive_PC_INCLUDEDIR}
|
||||||
|
${libarchive_PC_INCLUDEDIRS}
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
@@ -4,7 +4,7 @@ pkg_search_module (lz4_PC QUIET liblz4>=1.8)
|
|||||||
if(static)
|
if(static)
|
||||||
set(LZ4_LIB liblz4.a)
|
set(LZ4_LIB liblz4.a)
|
||||||
else()
|
else()
|
||||||
set(LZ4_LIB lz4)
|
set(LZ4_LIB lz4.so)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_library (lz4
|
find_library (lz4
|
||||||
|
|||||||
@@ -2,11 +2,27 @@
|
|||||||
NIH dep: libarchive
|
NIH dep: libarchive
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
set (lib_post "")
|
add_library (archive_lib STATIC IMPORTED GLOBAL)
|
||||||
if (MSVC)
|
|
||||||
|
if (NOT WIN32)
|
||||||
|
find_package(libarchive REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(libarchive)
|
||||||
|
set_target_properties (archive_lib PROPERTIES
|
||||||
|
IMPORTED_LOCATION_DEBUG
|
||||||
|
${archive}
|
||||||
|
IMPORTED_LOCATION_RELEASE
|
||||||
|
${archive}
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
${LIBARCHIVE_INCLUDE_DIR})
|
||||||
|
|
||||||
|
else()
|
||||||
|
set (lib_post "")
|
||||||
|
if (MSVC)
|
||||||
set (lib_post "_static")
|
set (lib_post "_static")
|
||||||
endif ()
|
endif ()
|
||||||
ExternalProject_Add (libarchive
|
ExternalProject_Add (libarchive
|
||||||
PREFIX ${nih_cache_path}
|
PREFIX ${nih_cache_path}
|
||||||
GIT_REPOSITORY https://github.com/libarchive/libarchive.git
|
GIT_REPOSITORY https://github.com/libarchive/libarchive.git
|
||||||
GIT_TAG v3.3.3
|
GIT_TAG v3.3.3
|
||||||
@@ -77,15 +93,14 @@ ExternalProject_Add (libarchive
|
|||||||
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}
|
||||||
)
|
)
|
||||||
ExternalProject_Get_Property (libarchive BINARY_DIR)
|
ExternalProject_Get_Property (libarchive BINARY_DIR)
|
||||||
ExternalProject_Get_Property (libarchive SOURCE_DIR)
|
ExternalProject_Get_Property (libarchive SOURCE_DIR)
|
||||||
if (CMAKE_VERBOSE_MAKEFILE)
|
if (CMAKE_VERBOSE_MAKEFILE)
|
||||||
print_ep_logs (libarchive)
|
print_ep_logs (libarchive)
|
||||||
endif ()
|
endif ()
|
||||||
add_library (archive_lib STATIC IMPORTED GLOBAL)
|
file (MAKE_DIRECTORY ${SOURCE_DIR}/libarchive)
|
||||||
file (MAKE_DIRECTORY ${SOURCE_DIR}/libarchive)
|
set_target_properties (archive_lib PROPERTIES
|
||||||
set_target_properties (archive_lib PROPERTIES
|
|
||||||
IMPORTED_LOCATION_DEBUG
|
IMPORTED_LOCATION_DEBUG
|
||||||
${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}
|
||||||
IMPORTED_LOCATION_RELEASE
|
IMPORTED_LOCATION_RELEASE
|
||||||
@@ -94,6 +109,8 @@ set_target_properties (archive_lib PROPERTIES
|
|||||||
${SOURCE_DIR}/libarchive
|
${SOURCE_DIR}/libarchive
|
||||||
INTERFACE_COMPILE_DEFINITIONS
|
INTERFACE_COMPILE_DEFINITIONS
|
||||||
LIBARCHIVE_STATIC)
|
LIBARCHIVE_STATIC)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_dependencies (archive_lib libarchive)
|
add_dependencies (archive_lib libarchive)
|
||||||
target_link_libraries (archive_lib INTERFACE lz4_lib)
|
target_link_libraries (archive_lib INTERFACE lz4_lib)
|
||||||
target_link_libraries (ripple_libs INTERFACE archive_lib)
|
target_link_libraries (ripple_libs INTERFACE archive_lib)
|
||||||
|
|||||||
Reference in New Issue
Block a user