diff options
Diffstat (limited to 'vcpkg-ports/minizip')
| -rw-r--r-- | vcpkg-ports/minizip/0001-remove-ifndef-NOUNCRYPT.patch | 29 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/0002-add-declaration-for-mkdir.patch | 29 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/0003-no-io64.patch | 49 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/CMakeLists.txt | 104 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/minizipConfig.cmake.in | 12 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/portfile.cmake | 49 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/usage | 4 | ||||
| -rw-r--r-- | vcpkg-ports/minizip/vcpkg.json | 27 |
8 files changed, 303 insertions, 0 deletions
diff --git a/vcpkg-ports/minizip/0001-remove-ifndef-NOUNCRYPT.patch b/vcpkg-ports/minizip/0001-remove-ifndef-NOUNCRYPT.patch new file mode 100644 index 00000000..d9c051d2 --- /dev/null +++ b/vcpkg-ports/minizip/0001-remove-ifndef-NOUNCRYPT.patch @@ -0,0 +1,29 @@ +From a6fd3992d44053a523a67aa16f5ae88fecfb20e1 Mon Sep 17 00:00:00 2001 +From: Nicole Mazzuca <mazzucan@outlook.com> +Date: Tue, 22 Sep 2020 14:09:53 -0700 +Subject: [PATCH 1/2] remove `#ifndef NOUNCRYPT` + +enable decrypt support for password-encrypted ZIP files + +--- + contrib/minizip/unzip.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/contrib/minizip/unzip.c b/contrib/minizip/unzip.c +index bcfb941..1895a0f 100644 +--- a/contrib/minizip/unzip.c ++++ b/contrib/minizip/unzip.c +@@ -68,10 +68,6 @@ + #include <stdlib.h> + #include <string.h> + +-#ifndef NOUNCRYPT +- #define NOUNCRYPT +-#endif +- + #include "zlib.h" + #include "unzip.h" + +-- +2.24.3 (Apple Git-128) + diff --git a/vcpkg-ports/minizip/0002-add-declaration-for-mkdir.patch b/vcpkg-ports/minizip/0002-add-declaration-for-mkdir.patch new file mode 100644 index 00000000..8786a840 --- /dev/null +++ b/vcpkg-ports/minizip/0002-add-declaration-for-mkdir.patch @@ -0,0 +1,29 @@ +From 6c38b6f544b55f9fc554f0fe22e2cbaddfaed7f8 Mon Sep 17 00:00:00 2001 +From: Nicole Mazzuca <mazzucan@outlook.com> +Date: Tue, 22 Sep 2020 14:15:04 -0700 +Subject: [PATCH 2/2] add declaration for mkdir + +It's invalid in C99 to implicitly declare mkdir + +--- + contrib/minizip/miniunz.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/contrib/minizip/miniunz.c b/contrib/minizip/miniunz.c +index 3d65401..5341af2 100644 +--- a/contrib/minizip/miniunz.c ++++ b/contrib/minizip/miniunz.c +@@ -12,6 +12,10 @@ + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + */ + ++#if !defined(_WIN32) ++#include <sys/stat.h> ++#endif ++ + #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) + #ifndef __USE_FILE_OFFSET64 + #define __USE_FILE_OFFSET64 +-- +2.24.3 (Apple Git-128) + diff --git a/vcpkg-ports/minizip/0003-no-io64.patch b/vcpkg-ports/minizip/0003-no-io64.patch new file mode 100644 index 00000000..6e72e3c9 --- /dev/null +++ b/vcpkg-ports/minizip/0003-no-io64.patch @@ -0,0 +1,49 @@ +diff --git a/contrib/minizip/ioapi.c b/contrib/minizip/ioapi.c +index 7f5c191..d42e050 100644 +--- a/contrib/minizip/ioapi.c ++++ b/contrib/minizip/ioapi.c +@@ -17,8 +17,8 @@ + #if defined(__APPLE__) || defined(IOAPI_NO_64) + // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions + #define FOPEN_FUNC(filename, mode) fopen(filename, mode) +-#define FTELLO_FUNC(stream) ftello(stream) +-#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) ++#define FTELLO_FUNC(stream) ftell(stream) ++#define FSEEKO_FUNC(stream, offset, origin) fseek(stream, offset, origin) + #else + #define FOPEN_FUNC(filename, mode) fopen64(filename, mode) + #define FTELLO_FUNC(stream) ftello64(stream) +diff --git a/contrib/minizip/miniunz.c b/contrib/minizip/miniunz.c +index 3d65401..a1269ea 100644 +--- a/contrib/minizip/miniunz.c ++++ b/contrib/minizip/miniunz.c +@@ -33,9 +33,9 @@ + #define FTELLO_FUNC(stream) ftello(stream) + #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) + #else +-#define FOPEN_FUNC(filename, mode) fopen64(filename, mode) +-#define FTELLO_FUNC(stream) ftello64(stream) +-#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin) ++#define FOPEN_FUNC(filename, mode) fopen(filename, mode) ++#define FTELLO_FUNC(stream) ftell(stream) ++#define FSEEKO_FUNC(stream, offset, origin) fseek(stream, offset, origin) + #endif + + +diff --git a/contrib/minizip/minizip.c b/contrib/minizip/minizip.c +index 4288962..02267fb 100644 +--- a/contrib/minizip/minizip.c ++++ b/contrib/minizip/minizip.c +@@ -34,9 +34,9 @@ + #define FTELLO_FUNC(stream) ftello(stream) + #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) + #else +-#define FOPEN_FUNC(filename, mode) fopen64(filename, mode) +-#define FTELLO_FUNC(stream) ftello64(stream) +-#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin) ++#define FOPEN_FUNC(filename, mode) fopen(filename, mode) ++#define FTELLO_FUNC(stream) ftell(stream) ++#define FSEEKO_FUNC(stream, offset, origin) fseek(stream, offset, origin) + #endif + + diff --git a/vcpkg-ports/minizip/CMakeLists.txt b/vcpkg-ports/minizip/CMakeLists.txt new file mode 100644 index 00000000..bd8ac71c --- /dev/null +++ b/vcpkg-ports/minizip/CMakeLists.txt @@ -0,0 +1,104 @@ +cmake_minimum_required(VERSION 3.8)
+project(minizip VERSION 1.2.13 LANGUAGES C)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+find_package(ZLIB REQUIRED)
+set(MIN_SRC contrib/minizip)
+
+include_directories(${MIN_SRC} ${ZLIB_INCLUDE_DIRS})
+
+set(MINIZIP_LIBRARIES ZLIB::ZLIB)
+if(ENABLE_BZIP2)
+ message(STATUS "Building with bzip2 support")
+ find_package(BZip2)
+
+ include_directories(${BZIP2_INCLUDE_DIR})
+ set(MINIZIP_LIBRARIES ${MINIZIP_LIBRARIES} ${BZIP2_LIBRARIES})
+else()
+ message(STATUS "Building without bzip2 support")
+endif()
+
+set(SRC
+ ${MIN_SRC}/ioapi.c
+ ${MIN_SRC}/unzip.c
+ ${MIN_SRC}/zip.c
+ ${MIN_SRC}/mztools.c
+)
+if(WIN32)
+ list(APPEND SRC ${MIN_SRC}/iowin32.c)
+endif()
+
+set(HEADERS
+ ${MIN_SRC}/crypt.h
+ ${MIN_SRC}/ioapi.h
+ ${MIN_SRC}/unzip.h
+ ${MIN_SRC}/zip.h
+ ${MIN_SRC}/mztools.h
+)
+if(WIN32)
+ list(APPEND HEADERS ${MIN_SRC}/iowin32.h)
+endif()
+
+add_library(minizip ${SRC})
+
+target_link_libraries(minizip PRIVATE ZLIB::ZLIB)
+target_compile_definitions(minizip PRIVATE -D_ZLIB_H)
+
+if(ENABLE_BZIP2)
+ target_link_libraries(minizip PUBLIC ${BZIP2_LIBRARIES})
+ target_compile_definitions(minizip PRIVATE -DHAVE_BZIP2=1)
+endif()
+if(ANDROID)
+ target_compile_definitions(minizip PRIVATE IOAPI_NO_64)
+endif()
+if(NOT DISABLE_INSTALL_TOOLS)
+ add_executable(minizip_bin ${MIN_SRC}/minizip.c)
+ add_executable(miniunz_bin ${MIN_SRC}/miniunz.c)
+
+ target_link_libraries(minizip_bin minizip ${MINIZIP_LIBRARIES})
+ target_link_libraries(miniunz_bin minizip ${MINIZIP_LIBRARIES})
+
+ set_target_properties(minizip_bin PROPERTIES OUTPUT_NAME minizip)
+ set_target_properties(miniunz_bin PROPERTIES OUTPUT_NAME miniunz)
+endif()
+
+install(
+ TARGETS minizip
+ EXPORT minizipTargets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file("${PROJECT_BINARY_DIR}/minizipConfigVersion.cmake"
+ COMPATIBILITY SameMajorVersion)
+
+configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/minizipConfig.cmake.in
+ minizipConfig.cmake
+ INSTALL_DESTINATION share/minizip)
+
+install(FILES
+ "${PROJECT_BINARY_DIR}/minizipConfig.cmake"
+ "${PROJECT_BINARY_DIR}/minizipConfigVersion.cmake"
+ DESTINATION share/minizip
+)
+
+install(EXPORT minizipTargets
+ NAMESPACE minizip::
+ DESTINATION share/minizip
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS minizip_bin miniunz_bin
+ RUNTIME DESTINATION tools/minizip
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${HEADERS} DESTINATION include/minizip)
+endif()
diff --git a/vcpkg-ports/minizip/minizipConfig.cmake.in b/vcpkg-ports/minizip/minizipConfig.cmake.in new file mode 100644 index 00000000..253b1295 --- /dev/null +++ b/vcpkg-ports/minizip/minizipConfig.cmake.in @@ -0,0 +1,12 @@ +#@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) + +find_dependency(ZLIB) + +if (@ENABLE_BZIP2@) + find_dependency(BZip2) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +check_required_components("@PROJECT_NAME@")
\ No newline at end of file diff --git a/vcpkg-ports/minizip/portfile.cmake b/vcpkg-ports/minizip/portfile.cmake new file mode 100644 index 00000000..b929116f --- /dev/null +++ b/vcpkg-ports/minizip/portfile.cmake @@ -0,0 +1,49 @@ +# When this port is updated, the minizip port should be updated at the same time + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO madler/zlib + REF v1.2.13 + SHA512 44b834fbfb50cca229209b8dbe1f96b258f19a49f5df23b80970b716371d856a4adf525edb4c6e0e645b180ea949cb90f5365a1d896160f297f56794dd888659 + HEAD_REF master + PATCHES + 0001-remove-ifndef-NOUNCRYPT.patch + 0002-add-declaration-for-mkdir.patch + 0003-no-io64.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + bzip2 ENABLE_BZIP2 +) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/minizipConfig.cmake.in" "${SOURCE_PATH}/cmake/minizipConfig.cmake.in" COPYONLY) +configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${SOURCE_PATH}/CMakeLists.txt" COPYONLY) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DDISABLE_INSTALL_TOOLS=${VCPKG_TARGET_IS_IOS} + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup() +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/minizip") + +if ("bzip2" IN_LIST FEATURES) + file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/minizip/*.h") + foreach(HEADER ${HEADERS}) + file(READ "${HEADER}" _contents) + string(REPLACE "#ifdef HAVE_BZIP2" "#if 1" _contents "${_contents}") + file(WRITE "${HEADER}" "${_contents}") + endforeach() +endif() + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/contrib/minizip/MiniZip64_info.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg-ports/minizip/usage b/vcpkg-ports/minizip/usage new file mode 100644 index 00000000..4ce006a2 --- /dev/null +++ b/vcpkg-ports/minizip/usage @@ -0,0 +1,4 @@ +minizip provides CMake targets: + + find_package(minizip CONFIG REQUIRED) + target_link_libraries(main PRIVATE minizip::minizip) diff --git a/vcpkg-ports/minizip/vcpkg.json b/vcpkg-ports/minizip/vcpkg.json new file mode 100644 index 00000000..89f610cc --- /dev/null +++ b/vcpkg-ports/minizip/vcpkg.json @@ -0,0 +1,27 @@ +{ + "name": "minizip", + "version-semver": "1.2.13", + "description": "Zip compression library", + "homepage": "https://github.com/madler/zlib", + "license": "Zlib", + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "features": { + "bzip2": { + "description": "Support compression using bzip2 library", + "dependencies": [ + "bzip2" + ] + } + } +} |
