From 7dc2b782067d746aac2a348e411004135fb5fbda Mon Sep 17 00:00:00 2001 From: Vollstrecker Date: Tue, 3 Dec 2024 15:23:19 +0100 Subject: CMake: Add test for usage with find_package. --- test/CMakeLists.txt | 44 +++++++++++++++++++++++++++++++++++++++++ test/find_package_test.cmake.in | 24 ++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 test/CMakeLists.txt create mode 100644 test/find_package_test.cmake.in (limited to 'test') diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..4758230 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,44 @@ +add_test(NAME zlib_test_install + COMMAND ${CMAKE_COMMAND} --install ${zlib_BINARY_DIR} + --prefix ${CMAKE_CURRENT_BINARY_DIR}/test_install + --config $ + WORKING_DIRECTORY ${zlib_BINARY_DIR}) + +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt) + +add_test(NAME zlib_test_configure_find_package + COMMAND ${CMAKE_COMMAND} + -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build + -DCMAKE_BUILD_TYPE=$ + -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install + -DZDIR=${CMAKE_CURRENT_BINARY_DIR}/test_install/${CMAKE_INSTALL_LIBDIR} + --fresh + -G "${CMAKE_GENERATOR}" + -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) + + +add_test(NAME zlib_test_build_find_package + COMMAND ${CMAKE_COMMAND} --build + ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build) + +add_test(NAME zlib_test_test_find_package + COMMAND ${CMAKE_CTEST_COMMAND} -C $ + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build) + +set_tests_properties(zlib_test_install PROPERTIES + FIXTURES_SETUP install) + +set_tests_properties(zlib_test_configure_find_package PROPERTIES + FIXTURES_REQUIRED install + FIXTURES_SETUP config) + +set_tests_properties(zlib_test_build_find_package PROPERTIES + FIXTURES_REQUIRED config + FIXTURES_SETUP build) + +set_tests_properties(zlib_test_test_find_package PROPERTIES + FIXTURES_REQUIRED build) diff --git a/test/find_package_test.cmake.in b/test/find_package_test.cmake.in new file mode 100644 index 0000000..c1c11d0 --- /dev/null +++ b/test/find_package_test.cmake.in @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.5) + +project(zlib_find_package_test + LANGUAGES C + VERSION 1.3.1.1) + +enable_testing() +find_package(zlib CONFIG REQUIRED) + +if(${ZLIB_BUILD_SHARED}) + add_executable(test_example ${zlib_SOURCE_DIR}/test/example.c) + target_link_libraries(test_example ZLIB::ZLIB) + + if(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll") + add_test(NAME zlib_test_example_shared COMMAND test_example) + endif(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll") +endif(${ZLIB_BUILD_SHARED}) + +if(${ZLIB_BUILD_STATIC}) + add_executable(test_example_static ${zlib_SOURCE_DIR}/test/example.c) + target_link_libraries(test_example_static ZLIB::ZLIBSTATIC) + add_test(NAME zlib_test_example_static + COMMAND test_example_static) +endif(${ZLIB_BUILD_STATIC}) -- cgit v1.2.3-55-g6feb