diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/minizip | |
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/CMakeLists.txt | 111 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/android-fileapi.patch | 17 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/lib-to-def.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/minizip-win32.def | 78 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/minizipConfig.cmake.in | 10 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/pkgconfig.patch | 11 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/portfile.cmake | 74 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/unofficial-minizipConfig.cmake.in | 10 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/minizip/vcpkg.json | 35 |
12 files changed, 448 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 0000000..d9c051d --- /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 0000000..8786a84 --- /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/CMakeLists.txt b/vcpkg/ports/minizip/CMakeLists.txt new file mode 100644 index 0000000..db79e72 --- /dev/null +++ b/vcpkg/ports/minizip/CMakeLists.txt @@ -0,0 +1,111 @@ +cmake_minimum_required(VERSION 3.25) +project(minizip LANGUAGES C) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +set(SRC + ioapi.c + unzip.c + zip.c + mztools.c +) +set(HEADERS + crypt.h + ioapi.h + unzip.h + zip.h + mztools.h +) +if(WIN32) + list(APPEND SRC iowin32.c minizip-win32.def) + list(APPEND HEADERS iowin32.h) +endif() + +add_library(minizip ${SRC}) +target_include_directories(minizip PUBLIC $<INSTALL_INTERFACE:include/minizip>) + +find_package(ZLIB REQUIRED) +target_compile_definitions(minizip PRIVATE -D_ZLIB_H) +target_link_libraries(minizip PUBLIC ZLIB::ZLIB) +set(MINIZIP_REQUIRES zlib) + +if(ENABLE_BZIP2) + message(STATUS "Building with bzip2 support") + find_package(BZip2 REQUIRED) + target_compile_definitions(minizip PRIVATE -DHAVE_BZIP2=1) + target_link_libraries(minizip PUBLIC BZip2::BZip2) + list(APPEND MINIZIP_REQUIRES bzip2) +else() + message(STATUS "Building without bzip2 support") +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + target_compile_definitions(minizip PRIVATE -DIOWIN32_USING_WINRT_API) +endif() + +if(NOT DISABLE_INSTALL_TOOLS) + add_executable(minizip_bin minizip.c) + add_executable(miniunz_bin miniunz.c) + + target_link_libraries(minizip_bin minizip) + target_link_libraries(miniunz_bin minizip) + + set_target_properties(minizip_bin PROPERTIES OUTPUT_NAME minizip) + set_target_properties(miniunz_bin PROPERTIES OUTPUT_NAME miniunz) + + install ( + TARGETS minizip_bin miniunz_bin + RUNTIME DESTINATION bin + ) +endif() + +install( + TARGETS minizip + EXPORT unofficial-minizipTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file("${PROJECT_BINARY_DIR}/unofficial-minizipConfigVersion.cmake" + VERSION "${PACKAGE_VERSION}" + COMPATIBILITY SameMajorVersion +) + +configure_package_config_file(unofficial-minizipConfig.cmake.in + unofficial-minizipConfig.cmake + INSTALL_DESTINATION share/unofficial-minizip +) + +install(FILES + "${PROJECT_BINARY_DIR}/unofficial-minizipConfig.cmake" + "${PROJECT_BINARY_DIR}/unofficial-minizipConfigVersion.cmake" + DESTINATION share/unofficial-minizip +) + +install(EXPORT unofficial-minizipTargets + NAMESPACE unofficial::minizip:: + DESTINATION share/unofficial-minizip +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES ${HEADERS} DESTINATION include/minizip) +endif() + +list(JOIN MINIZIP_REQUIRES " " MINIZIP_REQUIRES) +set(exec_prefix "\${prefix}") +set(libdir "\${prefix}/lib") +set(includedir "\${prefix}/include") +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/minizip.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/minizip.pc" + @ONLY +) +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/minizip.pc" + DESTINATION lib/pkgconfig +) + diff --git a/vcpkg/ports/minizip/android-fileapi.patch b/vcpkg/ports/minizip/android-fileapi.patch new file mode 100644 index 0000000..36171d0 --- /dev/null +++ b/vcpkg/ports/minizip/android-fileapi.patch @@ -0,0 +1,17 @@ +diff --git a/contrib/minizip/ioapi.h b/contrib/minizip/ioapi.h +index c588a18..b5395e2 100644 +--- a/contrib/minizip/ioapi.h ++++ b/contrib/minizip/ioapi.h +@@ -21,6 +21,12 @@ + #ifndef _ZLIBIOAPI64_H + #define _ZLIBIOAPI64_H + ++#if defined(__ANDROID_API__) && __ANDROID_API__ < 24 ++ // Cf. https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md#32_bit-and ++ // stdio functions for off_t are incomplete. ++ #define USE_FILE32API ++#endif ++ + #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) + + // Linux needs this to support file operation on files larger then 4+GB diff --git a/vcpkg/ports/minizip/lib-to-def.cmake b/vcpkg/ports/minizip/lib-to-def.cmake new file mode 100644 index 0000000..f603702 --- /dev/null +++ b/vcpkg/ports/minizip/lib-to-def.cmake @@ -0,0 +1,40 @@ +function(lib_to_def) + if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW OR NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + return() + endif() + + cmake_parse_arguments(PARSE_ARGV 0 arg "" "BASENAME;REGEX" "") + if(NOT arg_BASENAME) + message(FATAL_ERROR "BASENAME is a required argument.") + endif() + if(NOT arg_REGEX) + set(arg_REGEX "[^ ]+") + endif() + + set(logfile "${CURRENT_BUILDTREES_DIR}/dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}-symbols.log") + vcpkg_execute_required_process( + COMMAND dumpbin /symbols "/OUT:${logfile}" "${CURRENT_PACKAGES_DIR}/lib/${arg_BASENAME}.lib" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" + LOGNAME "dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}" + ) + file(STRINGS "${logfile}" symbols REGEX "^... ........ SECT.. notype .. External [|] ${arg_REGEX}") + list(TRANSFORM symbols REPLACE "^[^|]+[|] " " ") + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + string(REPLACE " _" " " symbols "${symbols}") + endif() + list(JOIN symbols "\n" symbols) + set(symbols "EXPORTS\n${symbols}\n") + set(def_file "${CMAKE_CURRENT_LIST_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def") + if(NOT EXISTS "${def_file}") + set(def_file "${CMAKE_CURRENT_LIST_DIR}/${arg_BASENAME}-win32.def") + endif() + if(EXISTS "${def_file}") + file(READ "${def_file}" original_symbols) + else() + set(original_symbols "") + endif() + if(NOT symbols STREQUAL original_symbols) + file(WRITE "${CURRENT_BUILDTREES_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def.log" "${symbols}") + message(SEND_ERROR "${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def has changed.") + endif() +endfunction() diff --git a/vcpkg/ports/minizip/minizip-win32.def b/vcpkg/ports/minizip/minizip-win32.def new file mode 100644 index 0000000..2f10819 --- /dev/null +++ b/vcpkg/ports/minizip/minizip-win32.def @@ -0,0 +1,78 @@ +EXPORTS
+ fill_win32_filefunc
+ fill_win32_filefunc64
+ fill_win32_filefunc64A
+ fill_win32_filefunc64W
+ win32_open64_file_func
+ win32_open64_file_funcA
+ win32_open64_file_funcW
+ win32_open_file_func
+ win32_read_file_func
+ win32_write_file_func
+ win32_tell_file_func
+ win32_tell64_file_func
+ win32_seek_file_func
+ win32_seek64_file_func
+ win32_close_file_func
+ win32_error_file_func
+ unzRepair
+ zip_copyright
+ zipOpen
+ zipOpen64
+ zipOpen2
+ zipOpen2_64
+ zipOpen3
+ zipOpenNewFileInZip
+ zipOpenNewFileInZip64
+ zipOpenNewFileInZip2
+ zipOpenNewFileInZip2_64
+ zipOpenNewFileInZip3
+ zipOpenNewFileInZip3_64
+ zipOpenNewFileInZip4
+ zipOpenNewFileInZip4_64
+ zipWriteInFileInZip
+ zipCloseFileInZip
+ zipCloseFileInZipRaw
+ zipCloseFileInZipRaw64
+ zipClose
+ zipRemoveExtraInfoBlock
+ unz_copyright
+ unzStringFileNameCompare
+ unzOpen
+ unzOpen64
+ unzOpen2
+ unzOpen2_64
+ unzClose
+ unzGetGlobalInfo
+ unzGetGlobalInfo64
+ unzGetGlobalComment
+ unzGoToFirstFile
+ unzGoToNextFile
+ unzLocateFile
+ unzGetFilePos
+ unzGoToFilePos
+ unzGetFilePos64
+ unzGoToFilePos64
+ unzGetCurrentFileInfo64
+ unzGetCurrentFileInfo
+ unzGetCurrentFileZStreamPos64
+ unzOpenCurrentFile
+ unzOpenCurrentFilePassword
+ unzOpenCurrentFile2
+ unzOpenCurrentFile3
+ unzCloseCurrentFile
+ unzReadCurrentFile
+ unztell
+ unztell64
+ unzeof
+ unzGetLocalExtrafield
+ unzGetOffset64
+ unzGetOffset
+ unzSetOffset64
+ unzSetOffset
+ fill_fopen64_filefunc
+ fill_fopen_filefunc
+ call_zopen64
+ call_zseek64
+ call_ztell64
+ fill_zlib_filefunc64_32_def_from_filefunc32
diff --git a/vcpkg/ports/minizip/minizipConfig.cmake.in b/vcpkg/ports/minizip/minizipConfig.cmake.in new file mode 100644 index 0000000..4527b18 --- /dev/null +++ b/vcpkg/ports/minizip/minizipConfig.cmake.in @@ -0,0 +1,10 @@ +message(WARNING "'find_package(minizip CONFIG)' is deprecated. Please use 'find_package(unofficial-minizip CONFIG)' instead.")
+
+include(CMakeFindDependencyMacro)
+find_dependency(unofficial-minizip ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} CONFIG)
+if(NOT TARGET unofficial::minizip::minizip)
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+elseif(NOT TARGET minizip::minizip)
+ add_library(minizip::minizip INTERFACE IMPORTED)
+ set_target_properties(minizip::minizip PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::minizip::minizip)
+endif()
diff --git a/vcpkg/ports/minizip/pkgconfig.patch b/vcpkg/ports/minizip/pkgconfig.patch new file mode 100644 index 0000000..107f9fc --- /dev/null +++ b/vcpkg/ports/minizip/pkgconfig.patch @@ -0,0 +1,11 @@ +diff --git a/contrib/minizip/minizip.pc.in b/contrib/minizip/minizip.pc.in +index 69b5b7f..9e43084 100644 +--- a/contrib/minizip/minizip.pc.in ++++ b/contrib/minizip/minizip.pc.in +@@ -8,5 +8,5 @@ Description: Minizip zip file manipulation library + Requires: + Version: @PACKAGE_VERSION@ + Libs: -L${libdir} -lminizip +-Libs.private: -lz ++Requires.private: @MINIZIP_REQUIRES@ + Cflags: -I${includedir} diff --git a/vcpkg/ports/minizip/portfile.cmake b/vcpkg/ports/minizip/portfile.cmake new file mode 100644 index 0000000..8c4a79f --- /dev/null +++ b/vcpkg/ports/minizip/portfile.cmake @@ -0,0 +1,74 @@ +# When zlib updated, the minizip port should be updated at the same time +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO madler/zlib + REF "v${VERSION}" + SHA512 8c9642495bafd6fad4ab9fb67f09b268c69ff9af0f4f20cf15dfc18852ff1f312bd8ca41de761b3f8d8e90e77d79f2ccacd3d4c5b19e475ecf09d021fdfe9088 + HEAD_REF master + PATCHES + 0001-remove-ifndef-NOUNCRYPT.patch + 0002-add-declaration-for-mkdir.patch + pkgconfig.patch + android-fileapi.patch +) + +# Maintainer switch: Temporarily set this to 1 to re-generate the lists +# of exported symbols. This is needed when the version is bumped. +set(GENERATE_SYMBOLS 0) +if(GENERATE_SYMBOLS) + vcpkg_cmake_get_vars(cmake_vars_file) + include("${cmake_vars_file}") + if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + else() + set(GENERATE_SYMBOLS 0) + endif() +endif() + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + bzip2 ENABLE_BZIP2 + INVERTED_FEATURES + tools DISABLE_INSTALL_TOOLS +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" + "${CMAKE_CURRENT_LIST_DIR}/minizip-win32.def" + "${CMAKE_CURRENT_LIST_DIR}/unofficial-minizipConfig.cmake.in" + DESTINATION "${SOURCE_PATH}/contrib/minizip" +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/contrib/minizip" + OPTIONS + ${FEATURE_OPTIONS} + -DPACKAGE_VERSION=${VERSION} + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON + -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-minizip) +vcpkg_fixup_pkgconfig() + +if("tools" IN_LIST FEATURES) + vcpkg_copy_tools(TOOL_NAMES minizip miniunz AUTO_CLEAN) +endif() + +if ("bzip2" IN_LIST FEATURES) + file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/minizip/*.h") + foreach(HEADER ${HEADERS}) + vcpkg_replace_string("${HEADER}" "#ifdef HAVE_BZIP2" "#if 1" IGNORE_UNCHANGED) + endforeach() +endif() + +configure_file("${CMAKE_CURRENT_LIST_DIR}/minizipConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/minizipConfig.cmake" @ONLY) +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/contrib/minizip/MiniZip64_info.txt") + +if(GENERATE_SYMBOLS) + include("${CMAKE_CURRENT_LIST_DIR}/lib-to-def.cmake") + lib_to_def(BASENAME minizip REGEX "(call|fill|unz|win32|zip)") +endif() diff --git a/vcpkg/ports/minizip/unofficial-minizipConfig.cmake.in b/vcpkg/ports/minizip/unofficial-minizipConfig.cmake.in new file mode 100644 index 0000000..f2afcbb --- /dev/null +++ b/vcpkg/ports/minizip/unofficial-minizipConfig.cmake.in @@ -0,0 +1,10 @@ +@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+find_dependency(ZLIB)
+if ("@ENABLE_BZIP2@")
+ find_dependency(BZip2)
+endif()
+
+include("${CMAKE_CURRENT_LIST_DIR}/unofficial-minizipTargets.cmake")
+check_required_components(unofficial-minizip)
diff --git a/vcpkg/ports/minizip/usage b/vcpkg/ports/minizip/usage new file mode 100644 index 0000000..6113742 --- /dev/null +++ b/vcpkg/ports/minizip/usage @@ -0,0 +1,4 @@ +minizip provides CMake targets:
+
+ find_package(unofficial-minizip CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE unofficial::minizip::minizip)
diff --git a/vcpkg/ports/minizip/vcpkg.json b/vcpkg/ports/minizip/vcpkg.json new file mode 100644 index 0000000..1466a32 --- /dev/null +++ b/vcpkg/ports/minizip/vcpkg.json @@ -0,0 +1,35 @@ +{ + "name": "minizip", + "version": "1.3.1", + "port-version": 1, + "description": "Minizip zip file manipulation library", + "homepage": "https://github.com/madler/zlib", + "license": "Zlib", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + { + "name": "vcpkg-cmake-get-vars", + "host": true + }, + "zlib" + ], + "features": { + "bzip2": { + "description": "Support compression using bzip2 library", + "dependencies": [ + "bzip2" + ] + }, + "tools": { + "description": "Install tools", + "supports": "!ios" + } + } +} |