FindLibArchive: create a target
parent
8455165239
commit
30488b3b9f
|
@ -0,0 +1,5 @@
|
|||
FindLibArchive-target
|
||||
---------------------
|
||||
|
||||
* The :module:`FindLibArchive` module now returns an ``IMPORTED`` target
|
||||
for libarchive.
|
|
@ -16,18 +16,26 @@ The module defines the following variables:
|
|||
LibArchive_INCLUDE_DIRS - include search path
|
||||
LibArchive_LIBRARIES - libraries to link
|
||||
LibArchive_VERSION - libarchive 3-component version number
|
||||
|
||||
The module defines the following ``IMPORTED`` targets:
|
||||
|
||||
::
|
||||
|
||||
LibArchive::LibArchive - target for linking against libarchive
|
||||
#]=======================================================================]
|
||||
|
||||
find_path(LibArchive_INCLUDE_DIR
|
||||
NAMES archive.h
|
||||
PATHS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/include"
|
||||
DOC "libarchive include directory"
|
||||
)
|
||||
|
||||
find_library(LibArchive_LIBRARY
|
||||
NAMES archive libarchive
|
||||
PATHS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/lib"
|
||||
DOC "libarchive library"
|
||||
)
|
||||
|
||||
mark_as_advanced(LibArchive_INCLUDE_DIR LibArchive_LIBRARY)
|
||||
|
@ -58,4 +66,11 @@ unset(LIBARCHIVE_FOUND)
|
|||
if(LibArchive_FOUND)
|
||||
set(LibArchive_INCLUDE_DIRS ${LibArchive_INCLUDE_DIR})
|
||||
set(LibArchive_LIBRARIES ${LibArchive_LIBRARY})
|
||||
|
||||
if (NOT TARGET LibArchive::LibArchive)
|
||||
add_library(LibArchive::LibArchive UNKNOWN IMPORTED)
|
||||
set_target_properties(LibArchive::LibArchive PROPERTIES
|
||||
IMPORTED_LOCATION "${LibArchive_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LibArchive_INCLUDE_DIR}")
|
||||
endif ()
|
||||
endif()
|
||||
|
|
|
@ -1405,6 +1405,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
|
|||
ICU
|
||||
JPEG
|
||||
JsonCpp
|
||||
LibArchive
|
||||
LibLZMA
|
||||
LibRHash
|
||||
Libinput
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
add_test(NAME FindLibArchive.Test COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindLibArchive/Test"
|
||||
"${CMake_BINARY_DIR}/Tests/FindLibArchive/Test"
|
||||
${build_generator_args}
|
||||
--build-project TestFindLibArchive
|
||||
--build-options ${build_options}
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
|
@ -0,0 +1,14 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
project(TestFindLibArchive C)
|
||||
include(CTest)
|
||||
|
||||
find_package(LibArchive REQUIRED)
|
||||
|
||||
add_executable(test_libarchive_tgt main.c)
|
||||
target_link_libraries(test_libarchive_tgt LibArchive::LibArchive)
|
||||
add_test(NAME test_libarchive_tgt COMMAND test_libarchive_tgt)
|
||||
|
||||
add_executable(test_libarchive_var main.c)
|
||||
target_include_directories(test_libarchive_var PRIVATE ${LibArchive_INCLUDE_DIRS})
|
||||
target_link_libraries(test_libarchive_var PRIVATE ${LibArchive_LIBRARIES})
|
||||
add_test(NAME test_libarchive_var COMMAND test_libarchive_var)
|
|
@ -0,0 +1,7 @@
|
|||
#include <archive.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
archive_read_free(archive_read_new());
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue