diff options
author | Vollstrecker <werner@vollstreckernet.de> | 2024-12-11 09:14:00 +0100 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2025-01-31 19:59:10 -0800 |
commit | 5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e (patch) | |
tree | 4240adf1ce048232f638102441d3fdd07be95c4d | |
parent | 920385267f71cd451754f83366f8bf2df1c9eb21 (diff) | |
download | zlib-5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e.tar.gz zlib-5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e.tar.bz2 zlib-5ff476ee43fda6053ec5cc6dcf974aa3eb80d98e.zip |
CMake: Add minizip.
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | contrib/minizip/CMakeLists.txt | 382 | ||||
-rw-r--r-- | contrib/minizip/minizip.pc.txt | 13 | ||||
-rw-r--r-- | contrib/minizip/minizipConfig.cmake.in | 5 | ||||
-rw-r--r-- | contrib/minizip/test/CMakeLists.txt | 139 | ||||
-rw-r--r-- | contrib/minizip/test/add_subdirectory_exclude_test.cmake.in | 25 | ||||
-rw-r--r-- | contrib/minizip/test/add_subdirectory_test.cmake.in | 25 | ||||
-rw-r--r-- | contrib/minizip/test/find_package_test.cmake.in | 24 | ||||
-rw-r--r-- | contrib/minizip/test/test_helper.cm | 32 |
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 | |||
7 | option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" ON) | 7 | option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" ON) |
8 | option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON) | 8 | option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON) |
9 | option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) | 9 | option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) |
10 | option(ZLIB_BUILD_MINIZIP "Enable building libminizip contrib library" OFF) | ||
10 | option(ZLIB_INSTALL_LIBRARIES "Enable installation of zlib" ON) | 11 | option(ZLIB_INSTALL_LIBRARIES "Enable installation of zlib" ON) |
11 | option(ZLIB_PREFIX | 12 | option(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) |
339 | endif(ZLIB_BUILD_TESTING) | 340 | endif(ZLIB_BUILD_TESTING) |
341 | |||
342 | if(ZLIB_BUILD_MINIZIP) | ||
343 | add_subdirectory(contrib/minizip/) | ||
344 | endif(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 @@ | |||
1 | cmake_minimum_required(VERSION 3.12) | ||
2 | |||
3 | project(minizip | ||
4 | VERSION 1.0.0 | ||
5 | LANGUAGES C) | ||
6 | |||
7 | option(MINIZIP_BUILD_SHARED "Enable building zlib shared library" ON) | ||
8 | option(MINIZIP_BUILD_STATIC "Enable building zlib static library" ON) | ||
9 | option(MINIZIP_BUILD_TESTING "Enable testing of minizip" ON) | ||
10 | option(MINIZIP_ENABLE_BZIP2 "Build minizip withj bzip2 support" ON) | ||
11 | option(MINIZIP_INSTALL "Enable installation of minizip" ON) | ||
12 | |||
13 | if(MINGW) | ||
14 | option(MINIZIP_INSTALL_COMPAT_DLL "Install a copy as libminizip-1.dll" ON) | ||
15 | endif(MINGW) | ||
16 | |||
17 | include(CheckFunctionExists) | ||
18 | include(CheckIncludeFile) | ||
19 | include(CheckCSourceCompiles) | ||
20 | include(CMakePackageConfigHelpers) | ||
21 | include(GNUInstallDirs) | ||
22 | |||
23 | if(MINIZIP_ENABLE_BZIP2) | ||
24 | find_package(BZip2) | ||
25 | endif(MINIZIP_ENABLE_BZIP2) | ||
26 | |||
27 | # | ||
28 | # Check for fopen64 | ||
29 | # | ||
30 | check_function_exists(fopen64 HAVE_FOPEN64) | ||
31 | |||
32 | # | ||
33 | # Check for fseeko | ||
34 | # | ||
35 | check_function_exists(fseeko HAVE_FSEEKO) | ||
36 | |||
37 | # | ||
38 | # Check for unistd.h | ||
39 | # | ||
40 | check_include_file(unistd.h HAVE_UNISTD_H) | ||
41 | |||
42 | # | ||
43 | # Check to see if we have large file support | ||
44 | # | ||
45 | set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) | ||
46 | check_type_size(off64_t OFF64_T) | ||
47 | unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable | ||
48 | |||
49 | # | ||
50 | # Check visibility attribute is supported | ||
51 | if(MSVC) | ||
52 | set(CMAKE_REQUIRED_FLAGS "-WX") | ||
53 | else(MSVC) | ||
54 | set(CMAKE_REQUIRED_FLAGS "-WError") | ||
55 | endif(MSVC) | ||
56 | |||
57 | check_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 | |||
65 | unset(CMAKE_REQUIRED_FLAGS) | ||
66 | |||
67 | if(NOT TARGET ZLIB::ZLIB) | ||
68 | find_package(zlib REQUIRED) | ||
69 | endif(NOT TARGET ZLIB::ZLIB) | ||
70 | |||
71 | set(LIBMINIZIP_SRCS | ||
72 | ioapi.c | ||
73 | mztools.c | ||
74 | unzip.c | ||
75 | zip.c) | ||
76 | |||
77 | set(LIBMINIZIP_HDRS | ||
78 | crypt.h | ||
79 | ioapi.h | ||
80 | mztools.h | ||
81 | unzip.h | ||
82 | zip.h) | ||
83 | |||
84 | set(MINIZIP_SRCS | ||
85 | ioapi.c | ||
86 | $<$<BOOL:${WIN32}>:iowin32.c> | ||
87 | minizip.c | ||
88 | zip.c) | ||
89 | |||
90 | set(MINIZIP_HDRS | ||
91 | crypt.h | ||
92 | ints.h | ||
93 | ioapi.h | ||
94 | $<$<BOOL:${WIN32}>:iowin32.h> | ||
95 | skipset.h | ||
96 | zip.h) | ||
97 | |||
98 | set(MINIUNZIP_SRCS | ||
99 | ioapi.c | ||
100 | $<$<BOOL:${WIN32}>:iowin32.c> | ||
101 | miniunz.c | ||
102 | unzip.c | ||
103 | zip.c) | ||
104 | |||
105 | set(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 | |||
114 | if(WIN32) | ||
115 | set(minizip_static_suffix "s") | ||
116 | set(CMAKE_DEBUG_POSTFIX "d") | ||
117 | endif(WIN32) | ||
118 | |||
119 | if(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) | ||
170 | endif(MINIZIP_BUILD_SHARED) | ||
171 | |||
172 | if(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) | ||
221 | endif(MINIZIP_BUILD_STATIC) | ||
222 | |||
223 | if(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}") | ||
282 | endif(MINIZIP_INSTALL) | ||
283 | |||
284 | if(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) | ||
382 | endif(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 @@ | |||
1 | prefix=@CMAKE_INSTALL_PREFIX@ | ||
2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ | ||
3 | libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ | ||
4 | sharedlibdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ | ||
5 | includedir=${exec_prefix}/@CMAKE_INSTALL_INCLUDEDIR@ | ||
6 | |||
7 | Name: minizip | ||
8 | Description: minizip compression library | ||
9 | Version: @minizip_VERSION@ | ||
10 | |||
11 | Requires: | ||
12 | Libs: -L${libdir} -L${sharedlibdir} -lz -lminizip | ||
13 | Cflags: -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 @@ | |||
1 | set(minizip_VERSION @minizip_VERSION@) | ||
2 | set(MINIZIP_ENABLE_BZIP2 @MINIZIP_ENABLE_BZIP2@ | ||
3 | @PACKAGE_INIT@ | ||
4 | INCLUDE (${CMAKE_CURRENT_LIST_DIR}/minizip.cmake) | ||
5 | find_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 @@ | |||
1 | add_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 | |||
7 | set_tests_properties(minizip_test_install | ||
8 | PROPERTIES | ||
9 | FIXTURES_SETUP minizip_install) | ||
10 | |||
11 | file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) | ||
12 | file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectoy_test) | ||
13 | file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test) | ||
14 | |||
15 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in | ||
16 | ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt) | ||
17 | |||
18 | configure_file( | ||
19 | ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in | ||
20 | ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectoy_test/CMakeLists.txt) | ||
21 | |||
22 | configure_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 | ||
26 | set(GENERATOR ${CMAKE_GENERATOR_PLATFORM}) | ||
27 | |||
28 | if(GENERATOR) | ||
29 | set(PLATFORM "-A ${GENERATOR}") | ||
30 | endif(GENERATOR) | ||
31 | |||
32 | # | ||
33 | # findpackage_test | ||
34 | # | ||
35 | add_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 | |||
48 | add_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 | |||
53 | add_test(NAME minizip_test_find_package | ||
54 | COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG> | ||
55 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build) | ||
56 | |||
57 | set_tests_properties(minizip_configure_find_package PROPERTIES | ||
58 | FIXTURES_REQUIRED minizip_install | ||
59 | FIXTURES_SETUP mzfp_config) | ||
60 | |||
61 | set_tests_properties(minizip_build_find_package PROPERTIES | ||
62 | FIXTURES_REQUIRED mzfp_config | ||
63 | FIXTURES_SETUP mzfp_build) | ||
64 | |||
65 | set_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 | # | ||
72 | add_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 | |||
84 | add_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 | |||
89 | add_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 | |||
93 | set_tests_properties(minizip_configure_add_subdirectory PROPERTIES | ||
94 | FIXTURES_REQUIRED minizip_install | ||
95 | FIXTURES_SETUP mzas_config) | ||
96 | |||
97 | set_tests_properties(minizip_build_add_subdirectory PROPERTIES | ||
98 | FIXTURES_REQUIRED mzas_config | ||
99 | FIXTURES_SETUP mzas_build) | ||
100 | |||
101 | set_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 | # | ||
108 | add_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 | |||
120 | add_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 | |||
125 | add_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 | |||
129 | set_tests_properties(minizip_configure_add_subdirectory_exclude PROPERTIES | ||
130 | FIXTURES_REQUIRED minizip_install | ||
131 | FIXTURES_SETUP mzasx_config) | ||
132 | |||
133 | set_tests_properties(minizip_build_add_subdirectory_exclude PROPERTIES | ||
134 | FIXTURES_REQUIRED mzasx_config | ||
135 | FIXTURES_SETUP mzasx_build) | ||
136 | |||
137 | set_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 @@ | |||
1 | cmake_minimum_required(VERSION 3.5) | ||
2 | |||
3 | project(zlib_find_package_test | ||
4 | LANGUAGES C | ||
5 | VERSION ${zlib_VERSION}) | ||
6 | |||
7 | enable_testing() | ||
8 | set(ZLIB_BUILD_TESTING OFF) | ||
9 | add_subdirectory(${zlib_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/zlib EXCLUDE_FROM_ALL) | ||
10 | |||
11 | if(${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") | ||
18 | endif(${ZLIB_BUILD_SHARED}) | ||
19 | |||
20 | if(${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) | ||
25 | endif(${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 @@ | |||
1 | cmake_minimum_required(VERSION 3.5) | ||
2 | |||
3 | project(zlib_find_package_test | ||
4 | LANGUAGES C | ||
5 | VERSION ${zlib_VERSION}) | ||
6 | |||
7 | enable_testing() | ||
8 | set(ZLIB_BUILD_TESTING OFF) | ||
9 | add_subdirectory(${zlib_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/zlib) | ||
10 | |||
11 | if(${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") | ||
18 | endif(${ZLIB_BUILD_SHARED}) | ||
19 | |||
20 | if(${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) | ||
25 | endif(${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 @@ | |||
1 | cmake_minimum_required(VERSION 3.5) | ||
2 | |||
3 | project(zlib_find_package_test | ||
4 | LANGUAGES C | ||
5 | VERSION ${zlib_VERSION}) | ||
6 | |||
7 | enable_testing() | ||
8 | find_package(zlib ${zlib_VERSION} CONFIG REQUIRED) | ||
9 | |||
10 | if(${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") | ||
17 | endif(${ZLIB_BUILD_SHARED}) | ||
18 | |||
19 | if(${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) | ||
24 | endif(${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 @@ | |||
1 | if(CREATE_SHARED) | ||
2 | file(REMOVE ./test_file_shared.orig ./test_file_shared.zip) | ||
3 | file(WRITE ./test_file_shared.txt "Hello Hello Hello") | ||
4 | endif(CREATE_SHARED) | ||
5 | |||
6 | if(MOVE_SHARED) | ||
7 | file(RENAME ./test_file_shared.txt ./test_file_shared.orig) | ||
8 | endif(MOVE_SHARED) | ||
9 | |||
10 | if(DELETE_SHARED) | ||
11 | file(REMOVE | ||
12 | ./test_file_shared.txt | ||
13 | ./test_file_shared.orig | ||
14 | ./test_file_shared.zip) | ||
15 | endif(DELETE_SHARED) | ||
16 | |||
17 | if(CREATE_STATIC) | ||
18 | file(REMOVE ./test_file_static.orig ./test_file_static.zip) | ||
19 | file(WRITE ./test_file_static.txt "Hello Hello Hello") | ||
20 | endif(CREATE_STATIC) | ||
21 | |||
22 | if(MOVE_STATIC) | ||
23 | file(RENAME ./test_file_static.txt ./test_file_static.orig) | ||
24 | endif(MOVE_STATIC) | ||
25 | |||
26 | if(DELETE_STATIC) | ||
27 | file(REMOVE | ||
28 | ./test_file_static.txt | ||
29 | ./test_file_static.orig | ||
30 | ./test_file_static.zip) | ||
31 | endif(DELETE_STATIC) | ||
32 | |||