Commit d3e5c53 for zlib
commit d3e5c539ed8a761137354208fe557edaa2059054
Author: Vollstrecker <werner@vollstreckernet.de>
Date: Wed Dec 24 14:17:25 2025 +0100
CMake: Add components tests for zlib.
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 098472e..61da30d 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -134,6 +134,8 @@ add_test(
set_tests_properties(zlib_install PROPERTIES FIXTURES_SETUP zlib_install)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/find_package_no_components_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/find_package_wrong_components_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
@@ -141,6 +143,14 @@ configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY)
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt @ONLY)
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt @ONLY)
+
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
@@ -191,6 +201,49 @@ set_tests_properties(
zlib_find_package_test PROPERTIES FIXTURES_REQUIRED fp_build ENVIRONMENT
CTEST_OUTPUT_ON_FAILURE=1)
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_find_package_no_components_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
+
+set_tests_properties(
+ zlib_find_package_no_components_configure
+ PROPERTIES FIXTURES_REQUIRED zlib_install)
+
+if(NOT ZLIB_BUILD_SHARED OR NOT ZLIB_BUILD_STATIC)
+ set_tests_properties(
+ zlib_find_package_no_components_configure
+ PROPERTIES WILL_FAIL TRUE)
+endif(NOT ZLIB_BUILD_SHARED OR NOT ZLIB_BUILD_STATIC)
+
+#
+# findpackage_no_component_test
+#
+add_test(
+ NAME zlib_find_package_wrong_components_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
+
+set_tests_properties(
+ zlib_find_package_wrong_components_configure
+ PROPERTIES FIXTURES_REQUIRED zlib_install
+ WILL_FAIL TRUE)
+
#
# add_subdirectory_test
#
diff --git a/test/find_package_no_components_test.cmake.in b/test/find_package_no_components_test.cmake.in
new file mode 100644
index 0000000..7c54386
--- /dev/null
+++ b/test/find_package_no_components_test.cmake.in
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ zlib_find_package_test
+ LANGUAGES C
+ VERSION @zlib_VERSION@)
+
+enable_testing()
+option(ZLIB_BUILD_SHARED "" @ZLIB_BUILD_SHARED@)
+option(ZLIB_BUILD_STATIC "" @ZLIB_BUILD_STATIC@)
+
+find_package(ZLIB @zlib_VERSION@ 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)
diff --git a/test/find_package_test.cmake.in b/test/find_package_test.cmake.in
index 0f77d49..be5486d 100644
--- a/test/find_package_test.cmake.in
+++ b/test/find_package_test.cmake.in
@@ -6,11 +6,11 @@ project(
VERSION @zlib_VERSION@)
enable_testing()
-find_package(ZLIB @zlib_VERSION@ CONFIG REQUIRED)
option(ZLIB_BUILD_SHARED "" @ZLIB_BUILD_SHARED@)
option(ZLIB_BUILD_STATIC "" @ZLIB_BUILD_STATIC@)
if(ZLIB_BUILD_SHARED)
+ find_package(ZLIB @zlib_VERSION@ CONFIG COMPONENTS shared REQUIRED)
add_executable(test_example @zlib_SOURCE_DIR@/test/example.c)
target_link_libraries(test_example ZLIB::ZLIB)
@@ -20,6 +20,7 @@ if(ZLIB_BUILD_SHARED)
endif(ZLIB_BUILD_SHARED)
if(ZLIB_BUILD_STATIC)
+ find_package(ZLIB @zlib_VERSION@ CONFIG COMPONENTS static REQUIRED)
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)
diff --git a/test/find_package_wrong_components_test.cmake.in b/test/find_package_wrong_components_test.cmake.in
new file mode 100644
index 0000000..fff4601
--- /dev/null
+++ b/test/find_package_wrong_components_test.cmake.in
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ zlib_find_package_test
+ LANGUAGES C
+ VERSION @zlib_VERSION@)
+
+enable_testing()
+option(ZLIB_BUILD_SHARED "" @ZLIB_BUILD_SHARED@)
+option(ZLIB_BUILD_STATIC "" @ZLIB_BUILD_STATIC@)
+
+find_package(ZLIB @zlib_VERSION@ CONFIG COMPONENTS wrong 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)