Build: Use imported target LibArchive::LibArchive instead of variables

This commit is contained in:
Alex Turbov
2022-08-21 09:13:32 +04:00
committed by Brad King
parent 9cdf5a6779
commit 1f5d9c5299
3 changed files with 13 additions and 6 deletions

View File

@@ -26,6 +26,9 @@ The module defines the following ``IMPORTED`` targets:
.. versionadded:: 3.6
Support for new libarchive 3.2 version string format.
.. versionadded:: 3.17
Provides an imported target.
#]=======================================================================]
find_path(LibArchive_INCLUDE_DIR

View File

@@ -743,7 +743,6 @@ target_include_directories(
"${CMake_BINARY_DIR}/Source"
"${CMake_SOURCE_DIR}/Source"
"${CMake_SOURCE_DIR}/Source/LexerParser"
${CMAKE_TAR_INCLUDES}
${CMake_HAIKU_INCLUDE_DIRS}
)
target_link_libraries(
@@ -752,8 +751,8 @@ target_link_libraries(
cmstd
cmsys
EXPAT::EXPAT
LibArchive::LibArchive
ZLIB::ZLIB
${CMAKE_TAR_LIBRARIES}
${CMAKE_CURL_LIBRARIES}
${CMAKE_JSONCPP_LIBRARIES}
${CMAKE_LIBUV_LIBRARIES}

View File

@@ -259,12 +259,16 @@ if(CMAKE_USE_SYSTEM_LIBARCHIVE)
if(NOT LibArchive_FOUND)
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found!")
endif()
set(CMAKE_TAR_INCLUDES ${LibArchive_INCLUDE_DIRS})
set(CMAKE_TAR_LIBRARIES ${LibArchive_LIBRARIES})
# NOTE `FindLibArchive` got imported targets support since 3.17
if (NOT TARGET LibArchive::LibArchive)
add_library(LibArchive::LibArchive UNKNOWN IMPORTED)
set_target_properties(LibArchive::LibArchive PROPERTIES
IMPORTED_LOCATION "${LibArchive_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${LibArchive_INCLUDE_DIRS}")
endif ()
else()
set(EXPAT_INCLUDE_DIR ${CMAKE_EXPAT_INCLUDES})
set(EXPAT_LIBRARY ${CMAKE_EXPAT_LIBRARIES})
add_compile_definitions(LIBARCHIVE_STATIC)
set(ENABLE_MBEDTLS OFF)
set(ENABLE_NETTLE OFF)
if(DEFINED CMAKE_USE_OPENSSL)
@@ -300,8 +304,9 @@ else()
set(ENABLE_SAFESEH "" CACHE INTERNAL "libarchive: No /SAFESEH linker flag")
set(WINDOWS_VERSION "WIN7" CACHE INTERNAL "libarchive: Set Windows version to use (Windows only)")
add_subdirectory(Utilities/cmlibarchive)
add_library(LibArchive::LibArchive ALIAS cmlibarchive)
target_compile_definitions(cmlibarchive INTERFACE LIBARCHIVE_STATIC)
CMAKE_SET_TARGET_FOLDER(cmlibarchive "Utilities/3rdParty")
set(CMAKE_TAR_LIBRARIES cmlibarchive ${BZIP2_LIBRARIES})
endif()
#---------------------------------------------------------------------