Skip to content

Commit

Permalink
Hunterise libarchive 3.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
hjmallon committed Apr 15, 2020
1 parent 614110e commit f7aa145
Showing 1 changed file with 43 additions and 55 deletions.
98 changes: 43 additions & 55 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW) #3.12.0 `find_package()`` uses ``<PackageName>_ROOT`` variables.
endif()
#
include("cmake/HunterGate.cmake")
HunterGate(
URL "https://github.com/cpp-pm/hunter/archive/v0.23.253.tar.gz"
SHA1 "88ea6d37c897a81a080eb9ae0f69d7807bbb3c73"
)
#
PROJECT(libarchive C)
#
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake")
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/build/cmake)
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${libarchive_BINARY_DIR}/bin)
endif()
Expand Down Expand Up @@ -405,21 +411,21 @@ SET(ADDITIONAL_LIBS "")
# Find ZLIB
#
IF(ENABLE_ZLIB)
FIND_PACKAGE(ZLIB)
hunter_add_package(ZLIB)
find_package(ZLIB CONFIG REQUIRED)
ELSE()
SET(ZLIB_FOUND FALSE) # Override cached value
ENDIF()
IF(ZLIB_FOUND)
SET(HAVE_LIBZ 1)
SET(HAVE_ZLIB_H 1)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES})
LIST(APPEND ADDITIONAL_LIBS ZLIB::zlib)
IF(WIN32 AND NOT CYGWIN)
#
# Test if ZLIB_WINAPI macro is needed to use.
#
TRY_MACRO_FOR_LIBRARY(
"${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}"
"" "ZLIB::zlib"
RUNS
"#include <zlib.h>\nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }"
ZLIB_WINAPI)
Expand All @@ -428,7 +434,7 @@ IF(ZLIB_FOUND)
ELSE(ZLIB_WINAPI)
# Test if a macro is needed for the library.
TRY_MACRO_FOR_LIBRARY(
"${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}"
"" "ZLIB::zlib"
COMPILES
"#include <zlib.h>\nint main() {return zlibVersion()?1:0; }"
"ZLIB_DLL;WITHOUT_ZLIB_DLL")
Expand All @@ -444,18 +450,18 @@ MARK_AS_ADVANCED(CLEAR ZLIB_LIBRARY)
# Find BZip2
#
IF(ENABLE_BZip2)
FIND_PACKAGE(BZip2)
hunter_add_package(BZip2)
find_package(BZip2 CONFIG REQUIRED)
ELSE()
SET(BZIP2_FOUND FALSE) # Override cached value
SET(BZip2_FOUND FALSE) # Override cached value
ENDIF()
IF(BZIP2_FOUND)
IF(BZip2_FOUND)
SET(HAVE_LIBBZ2 1)
SET(HAVE_BZLIB_H 1)
INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
LIST(APPEND ADDITIONAL_LIBS ${BZIP2_LIBRARIES})
LIST(APPEND ADDITIONAL_LIBS BZip2::bz2)
# Test if a macro is needed for the library.
TRY_MACRO_FOR_LIBRARY(
"${BZIP2_INCLUDE_DIR}" "${BZIP2_LIBRARIES}"
"" "BZip2::bz2"
COMPILES
"#include <bzlib.h>\nint main() {return BZ2_bzlibVersion()?1:0; }"
"USE_BZIP2_DLL;USE_BZIP2_STATIC")
Expand All @@ -464,7 +470,7 @@ IF(BZIP2_FOUND)
ELSEIF(USE_BZIP2_STATIC)
ADD_DEFINITIONS(-DUSE_BZIP2_STATIC)
ENDIF(USE_BZIP2_DLL)
ENDIF(BZIP2_FOUND)
ENDIF(BZip2_FOUND)
MARK_AS_ADVANCED(CLEAR BZIP2_INCLUDE_DIR)
MARK_AS_ADVANCED(CLEAR BZIP2_LIBRARIES)

Expand All @@ -473,32 +479,30 @@ MARK_AS_ADVANCED(CLEAR BZIP2_LIBRARIES)
# Find LZMA
#
IF(ENABLE_LZMA)
FIND_PACKAGE(LibLZMA)
hunter_add_package(lzma)
find_package(lzma CONFIG REQUIRED)
ELSE()
SET(LIBLZMA_FOUND FALSE) # Override cached value
SET(lzma_FOUND FALSE) # Override cached value
ENDIF()

IF(LIBLZMA_FOUND)
IF(lzma_FOUND)
SET(HAVE_LIBLZMA 1)
SET(HAVE_LZMA_H 1)
CMAKE_PUSH_CHECK_STATE()
SET(CMAKE_REQUIRED_INCLUDES ${LIBLZMA_INCLUDE_DIR})
SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES})
INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS})
LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES})
LIST(APPEND ADDITIONAL_LIBS lzma::lzma)
# Test if a macro is needed for the library.
TRY_MACRO_FOR_LIBRARY(
"${LIBLZMA_INCLUDE_DIRS}" "${LIBLZMA_LIBRARIES}"
"" "lzma::lzma"
COMPILES
"#include <lzma.h>\nint main() {return (int)lzma_version_number(); }"
"WITHOUT_LZMA_API_STATIC;LZMA_API_STATIC")
IF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC)
ADD_DEFINITIONS(-DLZMA_API_STATIC)
ENDIF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC)
CMAKE_POP_CHECK_STATE()
ELSE(LIBLZMA_FOUND)
ELSE(lzma_FOUND)
# LZMA not found and will not be used.
ENDIF(LIBLZMA_FOUND)
ENDIF(lzma_FOUND)
MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR)
MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY)

Expand Down Expand Up @@ -563,62 +567,45 @@ ENDIF(LIBB2_FOUND)
# Find LZ4
#
IF(ENABLE_LZ4)
IF (LZ4_INCLUDE_DIR)
# Already in cache, be silent
SET(LZ4_FIND_QUIETLY TRUE)
ENDIF (LZ4_INCLUDE_DIR)

FIND_PATH(LZ4_INCLUDE_DIR lz4.h)
FIND_LIBRARY(LZ4_LIBRARY NAMES lz4 liblz4)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZ4 DEFAULT_MSG LZ4_LIBRARY LZ4_INCLUDE_DIR)
hunter_add_package(lz4)
find_package(lz4 CONFIG REQUIRED)
ELSE(ENABLE_LZ4)
SET(LZ4_FOUND FALSE) # Override cached value
SET(lz4_FOUND FALSE) # Override cached value
ENDIF(ENABLE_LZ4)
IF(LZ4_FOUND)
IF(lz4_FOUND)
SET(HAVE_LIBLZ4 1)
SET(HAVE_LZ4_H 1)
LIST(APPEND ADDITIONAL_LIBS lz4::lz4)
CMAKE_PUSH_CHECK_STATE() # Save the state of the variables
SET(CMAKE_REQUIRED_INCLUDES ${LZ4_INCLUDE_DIR})
SET(CMAKE_REQUIRED_LIBRARIES lz4::lz4)
CHECK_INCLUDE_FILES("lz4hc.h" HAVE_LZ4HC_H)
CMAKE_POP_CHECK_STATE() # Restore the state of the variables
INCLUDE_DIRECTORIES(${LZ4_INCLUDE_DIR})
LIST(APPEND ADDITIONAL_LIBS ${LZ4_LIBRARY})
#
# TODO: test for static library.
#
ENDIF(LZ4_FOUND)
ENDIF(lz4_FOUND)
MARK_AS_ADVANCED(CLEAR LZ4_INCLUDE_DIR)
MARK_AS_ADVANCED(CLEAR LZ4_LIBRARY)
#
# Find Zstd
#
IF(ENABLE_ZSTD)
IF (ZSTD_INCLUDE_DIR)
# Already in cache, be silent
SET(ZSTD_FIND_QUIETLY TRUE)
ENDIF (ZSTD_INCLUDE_DIR)

FIND_PATH(ZSTD_INCLUDE_DIR zstd.h)
FIND_LIBRARY(ZSTD_LIBRARY NAMES zstd libzstd)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZSTD DEFAULT_MSG ZSTD_LIBRARY ZSTD_INCLUDE_DIR)
hunter_add_package(zstd)
find_package(zstd CONFIG REQUIRED)
ELSE(ENABLE_ZSTD)
SET(ZSTD_FOUND FALSE) # Override cached value
SET(zstd_FOUND FALSE) # Override cached value
ENDIF(ENABLE_ZSTD)
IF(ZSTD_FOUND)
IF(zstd_FOUND)
SET(HAVE_ZSTD_H 1)
INCLUDE_DIRECTORIES(${ZSTD_INCLUDE_DIR})
LIST(APPEND ADDITIONAL_LIBS ${ZSTD_LIBRARY})
LIST(APPEND ADDITIONAL_LIBS zstd::libzstd_static)
CMAKE_PUSH_CHECK_STATE()
SET(CMAKE_REQUIRED_LIBRARIES ${ZSTD_LIBRARY})
SET(CMAKE_REQUIRED_INCLUDES ${ZSTD_INCLUDE_DIR})
SET(CMAKE_REQUIRED_LIBRARIES zstd::libzstd_static)
CHECK_FUNCTION_EXISTS(ZSTD_compressStream HAVE_LIBZSTD)
#
# TODO: test for static library.
#
CMAKE_POP_CHECK_STATE()
ENDIF(ZSTD_FOUND)
ENDIF(zstd_FOUND)
MARK_AS_ADVANCED(CLEAR ZSTD_INCLUDE_DIR)
MARK_AS_ADVANCED(CLEAR ZSTD_LIBRARY)

Expand Down Expand Up @@ -1143,7 +1130,8 @@ ELSE(LIBXML2_FOUND)
# Find Expat
#
IF(ENABLE_EXPAT)
FIND_PACKAGE(EXPAT)
hunter_add_package(Expat)
find_package(EXPAT REQUIRED)
ELSE()
SET(EXPAT_FOUND FALSE)
ENDIF()
Expand Down

0 comments on commit f7aa145

Please sign in to comment.