FindLibArchive: create a target

stage/master/nightly/2019/12/08
T.J. Corona 2019-12-05 13:44:44 -05:00 committed by Kyle Edwards
parent 8455165239
commit 30488b3b9f
6 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,5 @@
FindLibArchive-target
---------------------
* The :module:`FindLibArchive` module now returns an ``IMPORTED`` target
for libarchive.

View File

@ -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()

View File

@ -1405,6 +1405,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
ICU
JPEG
JsonCpp
LibArchive
LibLZMA
LibRHash
Libinput

View File

@ -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>
)

View File

@ -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)

View File

@ -0,0 +1,7 @@
#include <archive.h>
int main(void)
{
archive_read_free(archive_read_new());
return 0;
}