mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
FindLibLZMA: add imported target
- Add imported target LibLZMA::LibLZMA - Show found message with library path - Add test for FindLibLZMA Fixes: #18680, #18679 Signed-off-by: Hiroshi Miura <miurahr@linux.com>
This commit is contained in:
4
Help/release/dev/FindLibLZMA-target.rst
Normal file
4
Help/release/dev/FindLibLZMA-target.rst
Normal file
@@ -0,0 +1,4 @@
|
||||
FindLibLZMA-target
|
||||
------------------
|
||||
|
||||
* The :module:`FindLibLZMA` module now provides an imported target.
|
||||
@@ -9,6 +9,18 @@ Find LibLZMA
|
||||
|
||||
Find LibLZMA headers and library
|
||||
|
||||
|
||||
IMPORTED Targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines :prop_tgt:`IMPORTED` target ``LibLZMA::LibLZMA``, if
|
||||
LibLZMA has been found.
|
||||
|
||||
Result variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module will set the following variables in your project:
|
||||
|
||||
::
|
||||
|
||||
LIBLZMA_FOUND - True if liblzma is found.
|
||||
@@ -51,17 +63,23 @@ if (LIBLZMA_LIBRARY)
|
||||
endif ()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibLZMA REQUIRED_VARS LIBLZMA_INCLUDE_DIR
|
||||
LIBLZMA_LIBRARY
|
||||
find_package_handle_standard_args(LibLZMA REQUIRED_VARS LIBLZMA_LIBRARY
|
||||
LIBLZMA_INCLUDE_DIR
|
||||
LIBLZMA_HAS_AUTO_DECODER
|
||||
LIBLZMA_HAS_EASY_ENCODER
|
||||
LIBLZMA_HAS_LZMA_PRESET
|
||||
VERSION_VAR LIBLZMA_VERSION_STRING
|
||||
)
|
||||
mark_as_advanced( LIBLZMA_INCLUDE_DIR LIBLZMA_LIBRARY )
|
||||
|
||||
if (LIBLZMA_FOUND)
|
||||
set(LIBLZMA_LIBRARIES ${LIBLZMA_LIBRARY})
|
||||
set(LIBLZMA_INCLUDE_DIRS ${LIBLZMA_INCLUDE_DIR})
|
||||
if(NOT TARGET LibLZMA::LibLZMA)
|
||||
add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED)
|
||||
set_target_properties(LibLZMA::LibLZMA PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${LIBLZMA_INCLUDE_DIR}
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES C
|
||||
IMPORTED_LOCATION ${LIBLZMA_LIBRARY})
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
mark_as_advanced( LIBLZMA_INCLUDE_DIR LIBLZMA_LIBRARY )
|
||||
|
||||
@@ -1417,6 +1417,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||
add_subdirectory(FindJsonCpp)
|
||||
endif()
|
||||
|
||||
if(CMake_TEST_FindLibLZMA)
|
||||
add_subdirectory(FindLibLZMA)
|
||||
endif()
|
||||
|
||||
if(CMake_TEST_FindLibRHash)
|
||||
add_subdirectory(FindLibRHash)
|
||||
endif()
|
||||
|
||||
10
Tests/FindLibLZMA/CMakeLists.txt
Normal file
10
Tests/FindLibLZMA/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
add_test(NAME FindLibLZMA.Test COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindLibLZMA/Test"
|
||||
"${CMake_BINARY_DIR}/Tests/FindLibLZMA/Test"
|
||||
${build_generator_args}
|
||||
--build-project TestFindLibLZMA
|
||||
--build-options ${build_options}
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
14
Tests/FindLibLZMA/Test/CMakeLists.txt
Normal file
14
Tests/FindLibLZMA/Test/CMakeLists.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
cmake_minimum_required(VERSION 3.4)
|
||||
project(TestFindLZMA C)
|
||||
include(CTest)
|
||||
|
||||
find_package(LibLZMA REQUIRED)
|
||||
|
||||
add_executable(test_tgt main.c)
|
||||
target_link_libraries(test_tgt LibLZMA::LibLZMA)
|
||||
add_test(NAME test_tgt COMMAND test_tgt)
|
||||
|
||||
add_executable(test_var main.c)
|
||||
target_include_directories(test_var PRIVATE ${LIBLZMA_INCLUDE_DIRS})
|
||||
target_link_libraries(test_var PRIVATE ${LIBLZMA_LIBRARIES})
|
||||
add_test(NAME test_var COMMAND test_var)
|
||||
15
Tests/FindLibLZMA/Test/main.c
Normal file
15
Tests/FindLibLZMA/Test/main.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include <assert.h>
|
||||
#include <lzma.h>
|
||||
#include <string.h>
|
||||
|
||||
static const uint8_t test_string[9] = "123456789";
|
||||
|
||||
int main()
|
||||
{
|
||||
static const uint32_t test_vector = 0xCBF43926;
|
||||
|
||||
uint32_t crc = lzma_crc32(test_string, sizeof(test_string), 0);
|
||||
assert(crc == test_vector);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user