aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVollstrecker <werner@vollstreckernet.de>2024-12-11 09:14:00 +0100
committerMark Adler <madler@alumni.caltech.edu>2025-01-31 19:59:10 -0800
commit5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e (patch)
tree4240adf1ce048232f638102441d3fdd07be95c4d
parent920385267f71cd451754f83366f8bf2df1c9eb21 (diff)
downloadzlib-5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e.tar.gz
zlib-5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e.tar.bz2
zlib-5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e.zip
CMake: Add minizip.
-rw-r--r--CMakeLists.txt5
-rw-r--r--contrib/minizip/CMakeLists.txt382
-rw-r--r--contrib/minizip/minizip.pc.txt13
-rw-r--r--contrib/minizip/minizipConfig.cmake.in5
-rw-r--r--contrib/minizip/test/CMakeLists.txt139
-rw-r--r--contrib/minizip/test/add_subdirectory_exclude_test.cmake.in25
-rw-r--r--contrib/minizip/test/add_subdirectory_test.cmake.in25
-rw-r--r--contrib/minizip/test/find_package_test.cmake.in24
-rw-r--r--contrib/minizip/test/test_helper.cm32
9 files changed, 650 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 583151c..b777ad7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,7 @@ project(zlib
7option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" ON) 7option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" ON)
8option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON) 8option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON)
9option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) 9option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON)
10option(ZLIB_BUILD_MINIZIP "Enable building libminizip contrib library" OFF)
10option(ZLIB_INSTALL_LIBRARIES "Enable installation of zlib" ON) 11option(ZLIB_INSTALL_LIBRARIES "Enable installation of zlib" ON)
11option(ZLIB_PREFIX 12option(ZLIB_PREFIX
12 "prefix for all types and library functions, see zconf.h.in" 13 "prefix for all types and library functions, see zconf.h.in"
@@ -337,3 +338,7 @@ if(ZLIB_BUILD_TESTING)
337 338
338 add_subdirectory(test) 339 add_subdirectory(test)
339endif(ZLIB_BUILD_TESTING) 340endif(ZLIB_BUILD_TESTING)
341
342if(ZLIB_BUILD_MINIZIP)
343 add_subdirectory(contrib/minizip/)
344endif(ZLIB_BUILD_MINIZIP)
diff --git a/contrib/minizip/CMakeLists.txt b/contrib/minizip/CMakeLists.txt
new file mode 100644
index 0000000..88ded2e
--- /dev/null
+++ b/contrib/minizip/CMakeLists.txt
@@ -0,0 +1,382 @@
1cmake_minimum_required(VERSION 3.12)
2
3project(minizip
4 VERSION 1.0.0
5 LANGUAGES C)
6
7option(MINIZIP_BUILD_SHARED "Enable building zlib shared library" ON)
8option(MINIZIP_BUILD_STATIC "Enable building zlib static library" ON)
9option(MINIZIP_BUILD_TESTING "Enable testing of minizip" ON)
10option(MINIZIP_ENABLE_BZIP2 "Build minizip withj bzip2 support" ON)
11option(MINIZIP_INSTALL "Enable installation of minizip" ON)
12
13if(MINGW)
14 option(MINIZIP_INSTALL_COMPAT_DLL "Install a copy as libminizip-1.dll" ON)
15endif(MINGW)
16
17include(CheckFunctionExists)
18include(CheckIncludeFile)
19include(CheckCSourceCompiles)
20include(CMakePackageConfigHelpers)
21include(GNUInstallDirs)
22
23if(MINIZIP_ENABLE_BZIP2)
24 find_package(BZip2)
25endif(MINIZIP_ENABLE_BZIP2)
26
27#
28# Check for fopen64
29#
30check_function_exists(fopen64 HAVE_FOPEN64)
31
32#
33# Check for fseeko
34#
35check_function_exists(fseeko HAVE_FSEEKO)
36
37#
38# Check for unistd.h
39#
40check_include_file(unistd.h HAVE_UNISTD_H)
41
42#
43# Check to see if we have large file support
44#
45set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
46check_type_size(off64_t OFF64_T)
47unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable
48
49#
50# Check visibility attribute is supported
51if(MSVC)
52 set(CMAKE_REQUIRED_FLAGS "-WX")
53else(MSVC)
54 set(CMAKE_REQUIRED_FLAGS "-WError")
55endif(MSVC)
56
57check_c_source_compiles(
58 "
59 #include <stdlib.h>
60 static void f(void) __attribute__ ((visibility(\"hidden\")));
61 int main(void) {return 0;}
62 "
63 HAVE___ATTR__VIS_HIDDEN)
64
65unset(CMAKE_REQUIRED_FLAGS)
66
67if(NOT TARGET ZLIB::ZLIB)
68 find_package(zlib REQUIRED)
69endif(NOT TARGET ZLIB::ZLIB)
70
71set(LIBMINIZIP_SRCS
72 ioapi.c
73 mztools.c
74 unzip.c
75 zip.c)
76
77set(LIBMINIZIP_HDRS
78 crypt.h
79 ioapi.h
80 mztools.h
81 unzip.h
82 zip.h)
83
84set(MINIZIP_SRCS
85 ioapi.c
86 $<$<BOOL:${WIN32}>:iowin32.c>
87 minizip.c
88 zip.c)
89
90set(MINIZIP_HDRS
91 crypt.h
92 ints.h
93 ioapi.h
94 $<$<BOOL:${WIN32}>:iowin32.h>
95 skipset.h
96 zip.h)
97
98set(MINIUNZIP_SRCS
99 ioapi.c
100 $<$<BOOL:${WIN32}>:iowin32.c>
101 miniunz.c
102 unzip.c
103 zip.c)
104
105set(MINIUNZIP_HDRS
106 crypt.h
107 ints.h
108 ioapi.h
109 $<$<BOOL:${WIN32}>:iowin32.h>
110 skipset.h
111 unzip.h
112 zip.h)
113
114if(WIN32)
115 set(minizip_static_suffix "s")
116 set(CMAKE_DEBUG_POSTFIX "d")
117endif(WIN32)
118
119if(MINIZIP_BUILD_SHARED)
120 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
121 add_library(libminizip SHARED
122 ${LIBMINIZIP_SRCS}
123 ${LIBMINIZIP_HDRS})
124 add_library(MINIZIP::MINIZIP ALIAS libminizip)
125 target_include_directories(libminizip PUBLIC
126 $<BUILD_INTERFACE:${minizip_SOURCE_DIR}>
127 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
128 target_compile_definitions(libminizip
129 PRIVATE
130 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
131 $<$<BOOL:${BZIP2_FOUND}>:HAVE_BZIP2=1>
132 $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
133 $<$<BOOL:${HAVE_UNISTD_H}>:HAVE_UNISTD_H=1>
134 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>
135 PUBLIC
136 $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
137
138 if(NOT CYGWIN)
139 set_target_properties(libminizip PROPERTIES
140 SOVERSION ${minizip_VERSION_MAJOR})
141 endif(NOT CYGWIN)
142
143 set_target_properties(libminizip PROPERTIES
144 EXPORT_NAME MINIZIP
145 OUTPUT_NAME minizip
146 VERSIOM ${minizip_VERSION}
147 SOVERSION ${minizip_VERSION_MAJOR})
148 target_link_libraries(libminizip
149 PUBLIC
150 $<$<BOOL:${BZIP2_FOUND}>:BZip2::BZip2>
151 ZLIB::ZLIB)
152
153 add_executable(minizip
154 ${MINIZIP_SRCS}
155 ${MINIZIP_HDRS})
156 target_compile_definitions(minizip
157 PRIVATE
158 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
159 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
160 target_link_libraries(minizip PRIVATE MINIZIP::MINIZIP)
161
162 add_executable(miniunzip
163 ${MINIUNZIP_SRCS}
164 ${MINIUNZIP_HDRS})
165 target_compile_definitions(miniunzip
166 PRIVATE
167 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
168 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
169 target_link_libraries(miniunzip PRIVATE MINIZIP::MINIZIP)
170endif(MINIZIP_BUILD_SHARED)
171
172if(MINIZIP_BUILD_STATIC)
173
174 add_library(libminizipstatic STATIC
175 ${LIBMINIZIP_SRCS}
176 ${LIBMINIZIP_HDRS})
177 add_library(MINIZIP::MINIZIPSTATIC ALIAS libminizipstatic)
178 target_include_directories(libminizipstatic PUBLIC
179 $<BUILD_INTERFACE:${minizip_SOURCE_DIR}>
180 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
181 target_compile_definitions(libminizipstatic
182 PRIVATE
183 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
184 $<$<BOOL:${BZIP2_FOUND}>:HAVE_BZIP2=1>
185 $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
186 $<$<BOOL:${HAVE_UNISTD_H}>:HAVE_UNISTD_H=1>
187 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>
188 PUBLIC
189 $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
190 set_target_properties(libminizipstatic PROPERTIES
191 EXPORT_NAME MINIZIPSTATIC
192 OUTPUT_NAME minizip${minizip_static_suffix})
193
194 if(CYGWIN)
195 set_target_properties(libminizipstatic PROPERTIES
196 SUFFIX ".dll.a")
197 endif(CYGWIN)
198
199 target_link_libraries(libminizipstatic
200 PUBLIC
201 $<$<BOOL:${BZIP2_FOUND}>:BZip2::BZip2>
202 ZLIB::ZLIBSTATIC)
203
204 add_executable(minizipstatic
205 ${MINIZIP_SRCS}
206 ${MINIZIP_HDRS})
207 target_compile_definitions(minizipstatic
208 PRIVATE
209 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
210 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
211 target_link_libraries(minizipstatic PRIVATE MINIZIP::MINIZIPSTATIC)
212
213 add_executable(miniunzipstatic
214 ${MINIUNZIP_SRCS}
215 ${MINIUNZIP_HDRS})
216 target_compile_definitions(miniunzipstatic
217 PRIVATE
218 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_WARNINGS>
219 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
220 target_link_libraries(miniunzipstatic PRIVATE MINIZIP::MINIZIPSTATIC)
221endif(MINIZIP_BUILD_STATIC)
222
223if(MINIZIP_INSTALL)
224 if(MINIZIP_BUILD_SHARED)
225 install(TARGETS libminizip minizip miniunzip
226 COMPONENT Runtime
227 EXPORT minizipExport
228 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
229 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
230 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
231 if(MINIZIP_INSTALL_COMPAT_DLL)
232 install(FILES $<TARGET_FILE:libminizip>
233 COMPONENT Runtime
234 RENAME libminizip-${minizip_VERSION_MAJOR}.dll
235 DESTINATION "${CMAKE_INSTALL_BINDIR}")
236 endif(MINIZIP_INSTALL_COMPAT_DLL)
237
238 if(MSVC)
239 install(FILES $<TARGET_PDB_FILE:libminizip>
240 COMPONENT Runtime
241 DESTINATION ${CMAKE_INSTALL_BINDIR}
242 CONFIGURATIONS Debug OR RelWithDebInfo
243 OPTIONAL
244 )
245 endif(MSVC)
246 endif(MINIZIP_BUILD_SHARED)
247
248 if(MINIZIP_BUILD_STATIC)
249 install(TARGETS libminizipstatic
250 COMPONENT Development
251 TARGETS minizipstatic miniunzipstatic
252 COMPONENT Runtime
253 EXPORT minizipExport
254 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
255 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
256 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
257 endif(MINIZIP_BUILD_STATIC)
258
259 configure_package_config_file(${minizip_SOURCE_DIR}/minizipConfig.cmake.in
260 ${minizip_BINARY_DIR}/minizipConfig.cmake
261 INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip
262 NO_CHECK_REQUIRED_COMPONENTS_MACRO)
263
264 write_basic_package_version_file(
265 "${minizip_BINARY_DIR}/minizipConfigVersion.cmake"
266 VERSION "${minizip_VERSION}"
267 COMPATIBILITY AnyNewerVersion)
268
269 install(FILES
270 ${minizip_BINARY_DIR}/minizipConfig.cmake
271 ${minizip_BINARY_DIR}/minizipConfigVersion.cmake
272 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip)
273
274 install(EXPORT minizipExport
275 FILE minizip.cmake
276 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip
277 NAMESPACE MINIZIP::)
278
279 install(FILES ${LIBMINIZIP_HDRS}
280 COMPONENT Development
281 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
282endif(MINIZIP_INSTALL)
283
284if(MINIZIP_BUILD_TESTING)
285 enable_testing()
286
287 if(MINIZIP_BUILD_SHARED AND NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
288 add_test(NAME minizip_prepare_shared_zip
289 COMMAND ${CMAKE_COMMAND} -DCREATE_SHARED=ON
290 -P ${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
291 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
292 add_test(NAME minizip_zipping_test_file_shared
293 COMMAND minizip test_file_shared.zip test_file_shared.txt
294 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
295 add_test(NAME minizip_prepare_shared_unzip
296 COMMAND ${CMAKE_COMMAND} -DMOVE_SHARED=ON
297 -P ${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
298 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
299 add_test(NAME minizip_miniunzipping_test_file_shared.zip
300 COMMAND miniunzip test_file_shared.zip
301 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
302 add_test(NAME minizip_compare_shared
303 COMMAND ${CMAKE_COMMAND} -E compare_files
304 test_file_shared.txt test_file_shared.orig
305 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
306 add_test(NAME minizip_clean_shared_zip
307 COMMAND ${CMAKE_COMMAND} -DDELETE_SHARED=ON
308 -P ${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
309 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
310 set_tests_properties(minizip_prepare_shared_zip
311 PROPERTIES
312 FIXTURES_SETUP prepare_shared)
313 set_tests_properties(minizip_zipping_test_file_shared
314 PROPERTIES
315 FIXTURES_REQUIRED prepare_shared
316 FIXTURES_SETUP zip_shared)
317 set_tests_properties(minizip_prepare_shared_unzip
318 PROPERTIES
319 FIXTURES_REQUIRED zip_shared
320 FIXTURES_SETUP prepare_unzip_shared)
321 set_tests_properties(minizip_miniunzipping_test_file_shared.zip
322 PROPERTIES
323 FIXTURES_REQUIRED prepare_unzip_shared
324 FIXTURES_SETUP prepare_compare_shared)
325 set_tests_properties(minizip_compare_shared
326 PROPERTIES
327 FIXTURES_REQUIRED prepare_compare_shared
328 FIXTURES_SETUP compared_shared)
329 set_tests_properties(minizip_clean_shared_zip
330 PROPERTIES
331 FIXTURES_CLEANUP compared_shared)
332 endif(MINIZIP_BUILD_SHARED AND NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
333
334 if(MINIZIP_BUILD_STATIC)
335 add_test(NAME minizip_prepare_static_zip
336 COMMAND ${CMAKE_COMMAND} -DCREATE_STATIC=ON
337 -P ${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
338 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
339 add_test(NAME minizip_zipping_test_file_static
340 COMMAND minizipstatic test_file_static.zip test_file_static.txt
341 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
342 add_test(NAME minizip_prepare_static_unzip
343 COMMAND ${CMAKE_COMMAND} -DMOVE_STATIC=ON
344 -P ${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
345 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
346 add_test(NAME minizip_miniunzipping_test_file_static.zip
347 COMMAND miniunzipstatic test_file_static.zip
348 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
349 add_test(NAME minizip_compare_static
350 COMMAND ${CMAKE_COMMAND} -E compare_files
351 test_file_static.txt test_file_static.orig
352 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
353 add_test(NAME minizip_clean_static_zip
354 COMMAND ${CMAKE_COMMAND} -DDELETE_STATIC=ON
355 -P ${CMAKE_CURRENT_SOURCE_DIR}/test/test_helper.cm
356 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test)
357 set_tests_properties(minizip_prepare_static_zip
358 PROPERTIES
359 FIXTURES_SETUP prepare_static)
360 set_tests_properties(minizip_zipping_test_file_static
361 PROPERTIES
362 FIXTURES_REQUIRED prepare_static
363 FIXTURES_SETUP zip_static)
364 set_tests_properties(minizip_prepare_static_unzip
365 PROPERTIES
366 FIXTURES_REQUIRED zip_static
367 FIXTURES_SETUP prepare_unzip_static)
368 set_tests_properties(minizip_miniunzipping_test_file_static.zip
369 PROPERTIES
370 FIXTURES_REQUIRED prepare_unzip_static
371 FIXTURES_SETUP prepare_compare_static)
372 set_tests_properties(minizip_compare_static
373 PROPERTIES
374 FIXTURES_REQUIRED prepare_compare_static
375 FIXTURES_SETUP compared_static)
376 set_tests_properties(minizip_clean_static_zip
377 PROPERTIES
378 FIXTURES_CLEANUP compared_static)
379 endif(MINIZIP_BUILD_STATIC)
380
381 add_subdirectory(test)
382endif(MINIZIP_BUILD_TESTING)
diff --git a/contrib/minizip/minizip.pc.txt b/contrib/minizip/minizip.pc.txt
new file mode 100644
index 0000000..060ab09
--- /dev/null
+++ b/contrib/minizip/minizip.pc.txt
@@ -0,0 +1,13 @@
1prefix=@CMAKE_INSTALL_PREFIX@
2exec_prefix=@CMAKE_INSTALL_PREFIX@
3libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
4sharedlibdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
5includedir=${exec_prefix}/@CMAKE_INSTALL_INCLUDEDIR@
6
7Name: minizip
8Description: minizip compression library
9Version: @minizip_VERSION@
10
11Requires:
12Libs: -L${libdir} -L${sharedlibdir} -lz -lminizip
13Cflags: -I${includedir}
diff --git a/contrib/minizip/minizipConfig.cmake.in b/contrib/minizip/minizipConfig.cmake.in
new file mode 100644
index 0000000..5221bfe
--- /dev/null
+++ b/contrib/minizip/minizipConfig.cmake.in
@@ -0,0 +1,5 @@
1set(minizip_VERSION @minizip_VERSION@)
2set(MINIZIP_ENABLE_BZIP2 @MINIZIP_ENABLE_BZIP2@
3@PACKAGE_INIT@
4INCLUDE (${CMAKE_CURRENT_LIST_DIR}/minizip.cmake)
5find_dependency(zlib)
diff --git a/contrib/minizip/test/CMakeLists.txt b/contrib/minizip/test/CMakeLists.txt
new file mode 100644
index 0000000..345718c
--- /dev/null
+++ b/contrib/minizip/test/CMakeLists.txt
@@ -0,0 +1,139 @@
1add_test(NAME minizip_test_install
2 COMMAND ${CMAKE_COMMAND} --install ${zlib_BINARY_DIR}
3 --prefix ${CMAKE_CURRENT_BINARY_DIR}/test_install
4 --config $<CONFIG>
5 WORKING_DIRECTORY ${zlib_BINARY_DIR})
6
7set_tests_properties(minizip_test_install
8 PROPERTIES
9 FIXTURES_SETUP minizip_install)
10
11file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
12file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectoy_test)
13file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
14
15configure_file(${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
16 ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt)
17
18configure_file(
19 ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
20 ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectoy_test/CMakeLists.txt)
21
22configure_file(${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
23 ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test/CMakeLists.txt)
24
25# CMAKE_GENERATOR_PLATFORM doesn't work in the if
26set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
27
28if(GENERATOR)
29 set(PLATFORM "-A ${GENERATOR}")
30endif(GENERATOR)
31
32#
33# findpackage_test
34#
35add_test(NAME minizip_configure_find_package
36 COMMAND ${CMAKE_COMMAND}
37 ${PLATFORM}
38 -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
39 -DCMAKE_BUILD_TYPE=$<CONFIG>
40 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
41 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
42 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install
43 -DZDIR=${CMAKE_CURRENT_BINARY_DIR}/test_install/${CMAKE_INSTALL_LIBDIR}
44 --fresh
45 -G "${CMAKE_GENERATOR}"
46 -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
47
48add_test(NAME minizip_build_find_package
49 COMMAND ${CMAKE_COMMAND} --build .
50 --config $<CONFIG>
51 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
52
53add_test(NAME minizip_test_find_package
54 COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG>
55 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
56
57set_tests_properties(minizip_configure_find_package PROPERTIES
58 FIXTURES_REQUIRED minizip_install
59 FIXTURES_SETUP mzfp_config)
60
61set_tests_properties(minizip_build_find_package PROPERTIES
62 FIXTURES_REQUIRED mzfp_config
63 FIXTURES_SETUP mzfp_build)
64
65set_tests_properties(minizip_test_find_package PROPERTIES
66 FIXTURES_REQUIRED mzfp_build
67 ENVIRONMENT CTEST_OUTPUT_ON_FAILURE=1)
68
69#
70# add_subdirectory_test
71#
72add_test(NAME minizip_configure_add_subdirectory
73 COMMAND ${CMAKE_COMMAND}
74 ${PLATFORM}
75 -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
76 -DCMAKE_BUILD_TYPE=$<CONFIG>
77 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
78 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
79 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install
80 --fresh
81 -G "${CMAKE_GENERATOR}"
82 -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
83
84add_test(NAME minizip_build_add_subdirectory
85 COMMAND ${CMAKE_COMMAND} --build .
86 --config $<CONFIG>
87 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
88
89add_test(NAME minizip_test_add_subdirectory
90 COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG>
91 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
92
93set_tests_properties(minizip_configure_add_subdirectory PROPERTIES
94 FIXTURES_REQUIRED minizip_install
95 FIXTURES_SETUP mzas_config)
96
97set_tests_properties(minizip_build_add_subdirectory PROPERTIES
98 FIXTURES_REQUIRED mzas_config
99 FIXTURES_SETUP mzas_build)
100
101set_tests_properties(minizip_test_add_subdirectory PROPERTIES
102 FIXTURES_REQUIRED mzas_build
103 ENVIRONMENT CTEST_OUTPUT_ON_FAILURE=1)
104
105#
106# add_subdirectory_exclude_test
107#
108add_test(NAME minizip_configure_add_subdirectory_exclude
109 COMMAND ${CMAKE_COMMAND}
110 ${PLATFORM}
111 -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
112 -DCMAKE_BUILD_TYPE=$<CONFIG>
113 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
114 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
115 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install
116 --fresh
117 -G "${CMAKE_GENERATOR}"
118 -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
119
120add_test(NAME minizip_build_add_subdirectory_exclude
121 COMMAND ${CMAKE_COMMAND} --build .
122 --config $<CONFIG>
123 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
124
125add_test(NAME minizip_test_add_subdirectory_exclude
126 COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG>
127 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
128
129set_tests_properties(minizip_configure_add_subdirectory_exclude PROPERTIES
130 FIXTURES_REQUIRED minizip_install
131 FIXTURES_SETUP mzasx_config)
132
133set_tests_properties(minizip_build_add_subdirectory_exclude PROPERTIES
134 FIXTURES_REQUIRED mzasx_config
135 FIXTURES_SETUP mzasx_build)
136
137set_tests_properties(minizip_test_add_subdirectory_exclude PROPERTIES
138 FIXTURES_REQUIRED mzasx_build
139 ENVIRONMENT CTEST_OUTPUT_ON_FAILURE=1)
diff --git a/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in b/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in
new file mode 100644
index 0000000..9dd9d35
--- /dev/null
+++ b/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in
@@ -0,0 +1,25 @@
1cmake_minimum_required(VERSION 3.5)
2
3project(zlib_find_package_test
4 LANGUAGES C
5 VERSION ${zlib_VERSION})
6
7enable_testing()
8set(ZLIB_BUILD_TESTING OFF)
9add_subdirectory(${zlib_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/zlib EXCLUDE_FROM_ALL)
10
11if(${ZLIB_BUILD_SHARED})
12 add_executable(test_example ${zlib_SOURCE_DIR}/test/example.c)
13 target_link_libraries(test_example ZLIB::ZLIB)
14
15 if(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
16 add_test(NAME zlib_test_example_shared COMMAND test_example)
17 endif(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
18endif(${ZLIB_BUILD_SHARED})
19
20if(${ZLIB_BUILD_STATIC})
21 add_executable(test_example_static ${zlib_SOURCE_DIR}/test/example.c)
22 target_link_libraries(test_example_static ZLIB::ZLIBSTATIC)
23 add_test(NAME zlib_test_example_static
24 COMMAND test_example_static)
25endif(${ZLIB_BUILD_STATIC})
diff --git a/contrib/minizip/test/add_subdirectory_test.cmake.in b/contrib/minizip/test/add_subdirectory_test.cmake.in
new file mode 100644
index 0000000..c10f709
--- /dev/null
+++ b/contrib/minizip/test/add_subdirectory_test.cmake.in
@@ -0,0 +1,25 @@
1cmake_minimum_required(VERSION 3.5)
2
3project(zlib_find_package_test
4 LANGUAGES C
5 VERSION ${zlib_VERSION})
6
7enable_testing()
8set(ZLIB_BUILD_TESTING OFF)
9add_subdirectory(${zlib_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/zlib)
10
11if(${ZLIB_BUILD_SHARED})
12 add_executable(test_example ${zlib_SOURCE_DIR}/test/example.c)
13 target_link_libraries(test_example ZLIB::ZLIB)
14
15 if(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
16 add_test(NAME zlib_test_example_shared COMMAND test_example)
17 endif(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
18endif(${ZLIB_BUILD_SHARED})
19
20if(${ZLIB_BUILD_STATIC})
21 add_executable(test_example_static ${zlib_SOURCE_DIR}/test/example.c)
22 target_link_libraries(test_example_static ZLIB::ZLIBSTATIC)
23 add_test(NAME zlib_test_example_static
24 COMMAND test_example_static)
25endif(${ZLIB_BUILD_STATIC})
diff --git a/contrib/minizip/test/find_package_test.cmake.in b/contrib/minizip/test/find_package_test.cmake.in
new file mode 100644
index 0000000..42f3c19
--- /dev/null
+++ b/contrib/minizip/test/find_package_test.cmake.in
@@ -0,0 +1,24 @@
1cmake_minimum_required(VERSION 3.5)
2
3project(zlib_find_package_test
4 LANGUAGES C
5 VERSION ${zlib_VERSION})
6
7enable_testing()
8find_package(zlib ${zlib_VERSION} CONFIG REQUIRED)
9
10if(${ZLIB_BUILD_SHARED})
11 add_executable(test_example ${zlib_SOURCE_DIR}/test/example.c)
12 target_link_libraries(test_example ZLIB::ZLIB)
13
14 if(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
15 add_test(NAME zlib_test_example_shared COMMAND test_example)
16 endif(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
17endif(${ZLIB_BUILD_SHARED})
18
19if(${ZLIB_BUILD_STATIC})
20 add_executable(test_example_static ${zlib_SOURCE_DIR}/test/example.c)
21 target_link_libraries(test_example_static ZLIB::ZLIBSTATIC)
22 add_test(NAME zlib_test_example_static
23 COMMAND test_example_static)
24endif(${ZLIB_BUILD_STATIC})
diff --git a/contrib/minizip/test/test_helper.cm b/contrib/minizip/test/test_helper.cm
new file mode 100644
index 0000000..99ae45e
--- /dev/null
+++ b/contrib/minizip/test/test_helper.cm
@@ -0,0 +1,32 @@
1if(CREATE_SHARED)
2 file(REMOVE ./test_file_shared.orig ./test_file_shared.zip)
3 file(WRITE ./test_file_shared.txt "Hello Hello Hello")
4endif(CREATE_SHARED)
5
6if(MOVE_SHARED)
7 file(RENAME ./test_file_shared.txt ./test_file_shared.orig)
8endif(MOVE_SHARED)
9
10if(DELETE_SHARED)
11 file(REMOVE
12 ./test_file_shared.txt
13 ./test_file_shared.orig
14 ./test_file_shared.zip)
15endif(DELETE_SHARED)
16
17if(CREATE_STATIC)
18 file(REMOVE ./test_file_static.orig ./test_file_static.zip)
19 file(WRITE ./test_file_static.txt "Hello Hello Hello")
20endif(CREATE_STATIC)
21
22if(MOVE_STATIC)
23 file(RENAME ./test_file_static.txt ./test_file_static.orig)
24endif(MOVE_STATIC)
25
26if(DELETE_STATIC)
27 file(REMOVE
28 ./test_file_static.txt
29 ./test_file_static.orig
30 ./test_file_static.zip)
31endif(DELETE_STATIC)
32