summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTROL53
-rw-r--r--fix-lzma.patch63
-rw-r--r--fix-zstd.patch13
-rw-r--r--name.patch30
-rw-r--r--portfile.cmake52
5 files changed, 211 insertions, 0 deletions
diff --git a/CONTROL b/CONTROL
new file mode 100644
index 0000000..ca9afce
--- /dev/null
+++ b/CONTROL
@@ -0,0 +1,53 @@
+Source: minizipfork
+Version: 2.10.0
+Port-Version: 1
+Homepage: https://github.com/nmoinvaz/minizip
+Description: minizip is a zip manipulation library written in C that is supported on Windows, macOS, and Linux.
+Default-Features: compat, zlib, bzip2, lzma, zstd, pkcrypt, wzaes, signing
+
+Feature: compat
+Description: Enables compatibility layer
+
+Feature: zlib
+Description: Enables ZLIB compression
+Build-Depends: zlib
+
+Feature: bzip2
+Description: Enables BZIP2 compression
+Build-Depends: bzip2
+
+Feature: lzma
+Description: Enables LZMA compression
+Build-Depends: liblzma
+
+Feature: zstd
+Description: Enables ZSTD compression
+Build-Depends: zstd
+
+Feature: pkcrypt
+Description: Enables PKWARE traditional encryption
+
+Feature: wzaes
+Description: Enables WinZIP AES encryption
+
+Feature: libcomp
+Description: Enables Apple compression
+
+Feature: openssl
+Description: Enables OpenSSL for encryption
+Build-Depends: openssl
+
+Feature: brg
+Description: Enables Brian Gladman's encryption library
+
+Feature: signing
+Description: Enables zip signing support
+
+Feature: compress_only
+Description: Only support compression
+
+Feature: decompress_only
+Description: Only support decompression
+
+Feature: file32_api
+Description: Builds using posix 32-bit file api
diff --git a/fix-lzma.patch b/fix-lzma.patch
new file mode 100644
index 0000000..2c64a5c
--- /dev/null
+++ b/fix-lzma.patch
@@ -0,0 +1,63 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e1a2584..b5014b4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -163,6 +163,15 @@ if(MZ_BZIP2)
+ endif()
+ endif()
+
++if(MZ_LZMA)
++ find_package(LibLZMA)
++ if(LibLZMA_FOUND)
++ message(STATUS "Using LZMA ${LIBLZMA_VERSION_STRING}")
++ list(APPEND MINIZIP_INC ${LibLZMA_INCLUDE_DIRS})
++ list(APPEND MINIZIP_DEF -DHAVE_LZMA)
++ endif()
++endif()
++
+ # Check to see if openssl installation is present
+ if(MZ_OPENSSL)
+ find_package(PkgConfig)
+@@ -520,6 +529,11 @@ endif()
+
+ # Include LZMA
+ if(MZ_LZMA)
++ list(APPEND MINIZIP_DEF -DHAVE_LZMA)
++ list(APPEND MINIZIP_SRC "mz_strm_lzma.c")
++ list(APPEND MINIZIP_PUBLIC_HEADERS "mz_strm_lzma.h")
++
++ if(NOT LibLZMA_FOUND)
+ check_include_file(limits.h HAVE_LIMITS_H)
+ check_include_file(string.h HAVE_STRING_H)
+ check_include_file(strings.h HAVE_STRINGS_H)
+@@ -548,12 +562,8 @@ if(MZ_LZMA)
+ list(APPEND MINIZIP_DEF -DHAVE_IMMINTRIN_H)
+ endif()
+
+- list(APPEND MINIZIP_DEF -DHAVE_LZMA)
+ list(APPEND MINIZIP_DEF -DLZMA_API_STATIC)
+
+- list(APPEND MINIZIP_SRC "mz_strm_lzma.c")
+- list(APPEND MINIZIP_PUBLIC_HEADERS "mz_strm_lzma.h")
+-
+ set(LZMA_CHECK_SRC
+ lib/liblzma/check/check.c
+ lib/liblzma/check/crc32_fast.c
+@@ -652,6 +662,7 @@ if(MZ_LZMA)
+ source_group("LZMA\\LZ" FILES ${LZMA_LZ_SRC} ${LZMA_LZ_HEADERS})
+ source_group("LZMA\\LZMA" FILES ${LZMA_LZMA_SRC} ${LZMA_LZMA_HEADERS})
+ source_group("LZMA\\RangeCoder" FILES ${LZMA_RANGECODER_SRC} ${LZMA_RANGECODER_HEADERS})
++ endif()
+ endif()
+
+ macro(mz_configure_target target)
+@@ -746,6 +757,9 @@ endif()
+ if(MZ_BZIP2 AND BZIP2_FOUND)
+ target_link_libraries(${PROJECT_NAME} ${BZIP2_LIBRARIES})
+ endif()
++if(MZ_LZMA AND LibLZMA_FOUND)
++ target_link_libraries(${PROJECT_NAME} ${LibLZMA_LIBRARIES})
++endif()
+ if(MZ_LIBCOMP)
+ target_link_libraries(${PROJECT_NAME} compression)
+ endif()
diff --git a/fix-zstd.patch b/fix-zstd.patch
new file mode 100644
index 0000000..9d9fd72
--- /dev/null
+++ b/fix-zstd.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a6deb4c..e1a2584 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -732,7 +732,7 @@ if(MZ_ZLIB AND NOT MZ_LIBCOMP)
+ endif()
+ if(MZ_ZSTD)
+ if(ZSTD_FOUND)
+- target_link_libraries(${PROJECT_NAME} ${ZSTD_LIBRARIES})
++ target_link_libraries(${PROJECT_NAME} libzstd)
+ else()
+ # Have to add zlib to install targets
+ if(NOT DEFINED BUILD_SHARED_LIBS OR NOT ${BUILD_SHARED_LIBS})
diff --git a/name.patch b/name.patch
new file mode 100644
index 0000000..71ced00
--- /dev/null
+++ b/name.patch
@@ -0,0 +1,30 @@
+--- A/CMakeLists.txt Tue Aug 11 16:06:08 2020
++++ B/CMakeLists.txt Tue Aug 11 16:21:29 2020
+@@ -802,21 +802,21 @@
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}")
+ install(EXPORT ${PROJECT_NAME}
+ DESTINATION "${INSTALL_CMAKE_DIR}"
+- NAMESPACE "MINIZIP::")
++ NAMESPACE "MINIZIPFORK::")
+
+ # Create and install CMake package config version file to allow find_package()
+ include(CMakePackageConfigHelpers)
+- write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/minizipConfigVersion.cmake
++ write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/minizipforkConfigVersion.cmake
+ COMPATIBILITY SameMajorVersion)
+
+- file(WRITE minizipConfig.cmake.in "@PACKAGE_INIT@")
++ file(WRITE minizipforkConfig.cmake.in "@PACKAGE_INIT@")
+
+ # Create config for find_package()
+- configure_package_config_file(minizipConfig.cmake.in minizipConfig.cmake
++ configure_package_config_file(minizipforkConfig.cmake.in minizipforkConfig.cmake
+ INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}")
+
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/minizipConfigVersion.cmake
+- ${CMAKE_CURRENT_BINARY_DIR}/minizipConfig.cmake
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/minizipforkConfigVersion.cmake
++ ${CMAKE_CURRENT_BINARY_DIR}/minizipforkConfig.cmake
+ DESTINATION "${INSTALL_CMAKE_DIR}")
+ endif()
+ if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL)
diff --git a/portfile.cmake b/portfile.cmake
new file mode 100644
index 0000000..23c2b43
--- /dev/null
+++ b/portfile.cmake
@@ -0,0 +1,52 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nmoinvaz/minizip
+ REF 2.10.0
+ SHA512 8717e00242ba4f8247ef60c925813bcfaf104243cdbfff4cca690e7c1f7da1132084e1b939b3adf1f019d220a1034f46f2fe2a543cca19106af5136e09d6af16
+ HEAD_REF master
+ PATCHES
+ fix-zstd.patch
+ fix-lzma.patch
+ name.patch
+)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ compat MZ_COMPAT
+ zlib MZ_ZLIB
+ bzip2 MZ_BZIP2
+ lzma MZ_LZMA
+ zstd MZ_ZSTD
+ pkcrypt MZ_PKCRYPT
+ wzaes MZ_WZAES
+ libcomp MZ_LIBCOMP
+ openssl MZ_OPENSSL
+ brg MZ_BRG
+ signing MZ_SIGNING
+ compress_only MZ_COMPRESS_ONLY
+ decompress_only MZ_DECOMPRESS_ONLY
+ file32_api MZ_FILE32_API
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DMZ_LIBBSD=OFF
+ -DMZ_PROJECT_SUFFIX=fork
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/minizipfork TARGET_PATH share/minizipfork)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/minizipfork RENAME copyright)