diff --git a/minizip-ng/BUILD.gn b/minizip-ng/BUILD.gn
index 71b8ebb1c90fd2416155436e9fc358e1b0e9cb24..a866cc9f79ba5c4b8f03f4be30102d6bd8481dc2 100644
--- a/minizip-ng/BUILD.gn
+++ b/minizip-ng/BUILD.gn
@@ -14,182 +14,167 @@
import("//build/ohos.gni")
declare_args() {
- enable_minizip_test = false
+ enable_minizip_test = false
}
config("libminizip_config") {
- include_dirs = [
- "//third_party/openssl/include",
- "//third_party/openssl/include/openssl/",
- "//third_party/minizip-ng/minizip-ng",
- "//third_party/bzip2",
- "//third_party/zlib",
- "//third_party/iconv/",
- "//third_party/iconv/libiconv",
- "//third_party/xz/xz/",
- "//third_party/xz/xz/src/liblzma/api/",
- "//third_party/zstd/zstd",
- "//third_party/zstd/zstd/lib/"
- ]
-
- cflags = [
- "-fPIC",
- "-Wall",
- "-Wextra",
- "-frtti",
- "-fexceptions",
- "-std=gnu99",
- "-Wno-error=missing-braces",
- "-Wno-error=visibility",
- "-Wno-error=unused-function",
- "-Wno-error=unused-variable",
- "-Wno-error=undef",
- "-Wno-error=deprecated-declarations",
- "-Wno-error=sign-compare",
- "-Wno-error=parentheses-equality",
- "-Wno-incompatible-pointer-types",
- "-Wno-error=unused-parameter",
- "-Wno-error=header-hygiene",
- "-Wno-error=implicit-function-declaration",
- "-DHAVE_BZIP2",
- "-DHAVE_INTTYPES_H",
- "-DHAVE_PKCRYPT",
- "-DHAVE_STDINT_H",
- "-DHAVE_WZAES",
- "-DHAVE_ZLIB",
- "-DHAVE_ZSTD",
- "-DHAVE_LZMA",
- "-DMZ_ZIP_SIGNING",
- "-DHAVE_ICONV",
- "-DLZMA_API_STATIC",
- "-D_POSIX_C_SOURCE=200112L",
- ]
+ include_dirs = [
+ "//third_party/openssl/include",
+ "//third_party/openssl/include/openssl/",
+ "//third_party/minizip-ng/minizip-ng",
+ "//third_party/bzip2",
+ "//third_party/zlib",
+ "//third_party/iconv/",
+ "//third_party/iconv/libiconv",
+ "//third_party/xz/xz/",
+ "//third_party/xz/xz/src/liblzma/api/",
+ "//third_party/zstd/zstd",
+ "//third_party/zstd/zstd/lib/",
+ ]
+
+ cflags = [
+ "-fPIC",
+ "-Wall",
+ "-Wextra",
+ "-frtti",
+ "-fexceptions",
+ "-std=gnu99",
+ "-Wno-error=missing-braces",
+ "-Wno-error=visibility",
+ "-Wno-error=unused-function",
+ "-Wno-error=unused-variable",
+ "-Wno-error=undef",
+ "-Wno-error=deprecated-declarations",
+ "-Wno-error=sign-compare",
+ "-Wno-error=parentheses-equality",
+ "-Wno-incompatible-pointer-types",
+ "-Wno-error=unused-parameter",
+ "-Wno-error=header-hygiene",
+ "-Wno-error=implicit-function-declaration",
+ "-DHAVE_BZIP2",
+ "-DHAVE_INTTYPES_H",
+ "-DHAVE_PKCRYPT",
+ "-DHAVE_STDINT_H",
+ "-DHAVE_WZAES",
+ "-DHAVE_ZLIB",
+ "-DHAVE_ZSTD",
+ "-DHAVE_LZMA",
+ "-DMZ_ZIP_SIGNING",
+ "-DHAVE_ICONV",
+ "-DLZMA_API_STATIC",
+ "-D_POSIX_C_SOURCE=200112L",
+ ]
}
ohos_shared_library("minizip_shared") {
- sources = [
- "//third_party/minizip-ng/minizip-ng/mz_compat.c",
- "//third_party/minizip-ng/minizip-ng/mz_crypt.c",
- "//third_party/minizip-ng/minizip-ng/mz_crypt_openssl.c",
- "//third_party/minizip-ng/minizip-ng/mz_os.c",
- "//third_party/minizip-ng/minizip-ng/mz_os_posix.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_buf.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_bzip.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_mem.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_os_posix.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_pkcrypt.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_split.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_wzaes.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_zlib.c",
- "//third_party/minizip-ng/minizip-ng/mz_zip.c",
- "//third_party/minizip-ng/minizip-ng/mz_zip_rw.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_lzma.c",
- "//third_party/minizip-ng/minizip-ng/mz_strm_zstd.c",
- ]
-
- configs = [
- ":libminizip_config"
- ]
-
- deps = [
- "//third_party/openssl:libcrypto_shared",
- "//third_party/zlib:libz_shared",
- "//third_party/bzip2:libbz2",
- "//third_party/iconv:iconv",
- "//third_party/zstd:zstd_shared",
- "//third_party/xz:libxz",
- ]
-
- part_name = "minizip"
+ sources = [
+ "//third_party/minizip-ng/minizip-ng/mz_compat.c",
+ "//third_party/minizip-ng/minizip-ng/mz_crypt.c",
+ "//third_party/minizip-ng/minizip-ng/mz_crypt_openssl.c",
+ "//third_party/minizip-ng/minizip-ng/mz_os.c",
+ "//third_party/minizip-ng/minizip-ng/mz_os_posix.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_buf.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_bzip.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_lzma.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_mem.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_os_posix.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_pkcrypt.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_split.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_wzaes.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_zlib.c",
+ "//third_party/minizip-ng/minizip-ng/mz_strm_zstd.c",
+ "//third_party/minizip-ng/minizip-ng/mz_zip.c",
+ "//third_party/minizip-ng/minizip-ng/mz_zip_rw.c",
+ ]
+
+ configs = [ ":libminizip_config" ]
+
+ deps = [
+ "//third_party/bzip2:libbz2",
+ "//third_party/iconv:iconv",
+ "//third_party/openssl:libcrypto_shared",
+ "//third_party/xz:libxz",
+ "//third_party/zlib:libz_shared",
+ "//third_party/zstd:zstd_shared",
+ ]
+
+ part_name = "minizip"
}
ohos_executable("minizip") {
- sources = [
- "./minizip-ng/minizip.c",
- ]
-
- cflags = [
- "-DHAVE_BZIP2",
- "-DHAVE_ICONV",
- "-DHAVE_INTTYPES_H",
- "-DHAVE_LZMA",
- "-DHAVE_PKCRYPT",
- "-DHAVE_STDINT_H",
- "-DHAVE_WZAES",
- "-DHAVE_ZLIB",
- "-DHAVE_ZSTD",
- "-DLZMA_API_STATIC",
- "-DMZ_ZIP_SIGNING",
- "-D_POSIX_C_SOURCE=200112L",
- ]
-
- deps = [
- "//third_party/minizip-ng:minizip_shared",
- ]
-
- part_name = "minizip"
+ sources = [ "./minizip-ng/minizip.c" ]
+
+ cflags = [
+ "-DHAVE_BZIP2",
+ "-DHAVE_ICONV",
+ "-DHAVE_INTTYPES_H",
+ "-DHAVE_LZMA",
+ "-DHAVE_PKCRYPT",
+ "-DHAVE_STDINT_H",
+ "-DHAVE_WZAES",
+ "-DHAVE_ZLIB",
+ "-DHAVE_ZSTD",
+ "-DLZMA_API_STATIC",
+ "-DMZ_ZIP_SIGNING",
+ "-D_POSIX_C_SOURCE=200112L",
+ ]
+
+ deps = [ "//third_party/minizip-ng:minizip_shared" ]
+
+ part_name = "minizip"
}
ohos_executable("minigzip") {
- sources = [
- "./minizip-ng/minigzip.c",
- ]
+ sources = [ "./minizip-ng/minigzip.c" ]
- public_configs = [ ":libminizip_config" ]
+ public_configs = [ ":libminizip_config" ]
- deps = [
- "//third_party/minizip-ng:minizip_shared",
- ]
+ deps = [ "//third_party/minizip-ng:minizip_shared" ]
- part_name = "minizip"
+ part_name = "minizip"
}
-config ("minizip_config") {
- include_dirs = [
- "//third_party/minizip-ng/minizip-ng",
- "//third_party/minizip-ng/minizip-ng/test",
- ]
-
- cflags = [
- "-DHAVE_COMPAT",
- "-DHAVE_BZIP2",
- "-DHAVE_INTTYPES_H",
- "-DHAVE_PKCRYPT",
- "-DHAVE_STDINT_H",
- "-DHAVE_WZAES",
- "-DHAVE_ZLIB",
- "-DHAVE_LZMA",
- "-DHAVE_ZSTD",
- "-DMZ_ZIP_SIGNING",
- "-DZLIB_COMPAT",
- "-D_POSIX_C_SOURCE=200112L"
- ]
+config("minizip_config") {
+ include_dirs = [
+ "//third_party/minizip-ng/minizip-ng",
+ "//third_party/minizip-ng/minizip-ng/test",
+ ]
+
+ cflags = [
+ "-DHAVE_COMPAT",
+ "-DHAVE_BZIP2",
+ "-DHAVE_INTTYPES_H",
+ "-DHAVE_PKCRYPT",
+ "-DHAVE_STDINT_H",
+ "-DHAVE_WZAES",
+ "-DHAVE_ZLIB",
+ "-DHAVE_LZMA",
+ "-DHAVE_ZSTD",
+ "-DMZ_ZIP_SIGNING",
+ "-DZLIB_COMPAT",
+ "-D_POSIX_C_SOURCE=200112L",
+ ]
}
ohos_executable("minizip_test") {
- sources = [
- "./minizip-ng/test/test.c"
- ]
+ sources = [ "./minizip-ng/test/test.c" ]
- public_configs = [ ":minizip_config" ]
+ public_configs = [ ":minizip_config" ]
- deps = [
- "//third_party/minizip-ng:minizip_shared",
- ]
+ deps = [ "//third_party/minizip-ng:minizip_shared" ]
- part_name = "minizip"
+ part_name = "minizip"
}
-
-group ("samples") {
- if(enable_minizip_test) {
- deps = [
- ":minizip",
- ":minigzip",
- ":minizip_test",
- ]
- } else {
- deps = []
- }
+group("samples") {
+ if (enable_minizip_test) {
+ deps = [
+ ":minigzip",
+ ":minizip",
+ ":minizip_test",
+ ]
+ } else {
+ deps = []
+ }
}
diff --git a/minizip-ng/CMakeLists.txt b/minizip-ng/CMakeLists.txt
new file mode 100755
index 0000000000000000000000000000000000000000..cece8309b23b8d56afe95429fee4581ee78918d6
--- /dev/null
+++ b/minizip-ng/CMakeLists.txt
@@ -0,0 +1,329 @@
+
+# Copyright (c) 2022 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# the minimum version of CMake.
+cmake_minimum_required(VERSION 3.4.1)
+project(minizip-ng)
+
+set(MINIZIP_DEFINITIONS
+ -DHAVE_INTTYPES_H
+ -DHAVE_STDINT_H
+ -DLZMA_API_STATIC
+ -D_POSIX_C_SOURCE=200112L
+ -DOPENSSL_ARM64_PLATFORM
+ -D_GNU_SOURCE
+ -DHAVE_ZLIB
+ -DMZ_ZIP_NO_CRYPTO
+ )
+
+set(MINIZIP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng)
+set(MINIZIP_SRC "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_crypt.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_os.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_buf.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_mem.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_split.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_zip.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_zip_rw.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_zlib.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_os_posix.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_os_posix.c"
+ )
+
+set(LinkLib libz.so)
+
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../libiconv)
+option(BUILD_ICONV "enable to build iconv" ON)
+endif()
+
+if (BUILD_ICONV)
+set(ICONV_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../iconv/adapter)
+set(ICONV_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../iconv/libiconv/lib/iconv.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../iconv/libiconv/lib/relocatable.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../iconv/libiconv/libcharset/lib/localcharset.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../iconv/libiconv/libcharset/lib/relocatable-stub.c
+ )
+set(ICONV_LIB_DEFINITIONS
+ -DCVAPI_EXPORTS
+ -D_USE_MATH_DEFINES
+ -D__STDC_CONSTANT_MACROS
+ -D__STDC_FORMAT_MACROS
+ -D__STDC_LIMIT_MACROS
+ -DHAVE_CONFIG_H
+ -DENABLE_RELOCATABLE=1
+ -DBUILDING_LIBICONV
+ -DNO_XMALLOC)
+
+add_library(iconv SHARED ${ICONV_SRC})
+target_compile_definitions(iconv PRIVATE ${ICONV_LIB_DEFINITIONS})
+target_include_directories(iconv PUBLIC ${ICONV_INCLUDE_DIR})
+
+list(APPEND MINIZIP_DEFINITIONS -DHAVE_ICONV)
+list(APPEND MINIZIP_INCLUDE_DIR ${ICONV_INCLUDE_DIR})
+list(APPEND LinkLib iconv)
+endif()
+
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../bzip2)
+option(BUILD_BZIP "enable to build with bzip2" ON)
+endif()
+
+if (BUILD_BZIP)
+set(BZIP2_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2")
+set(BZIP2_SRC
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/blocksort.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/bzlib.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/compress.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/crctable.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/decompress.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/huffman.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/randtable.c")
+
+add_library(bzip2 SHARED ${BZIP2_SRC})
+target_include_directories(bzip2 PUBLIC ${BZIP2_INCLUDE_DIR})
+
+list(APPEND MINIZIP_DEFINITIONS -DBZ_NO_STDIO -DHAVE_BZIP2)
+list(APPEND MINIZIP_INCLUDE_DIR ${BZIP2_INCLUDE_DIR})
+list(APPEND LinkLib bzip2)
+list(APPEND MINIZIP_SRC ${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_bzip.c)
+endif()
+
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../zstd)
+option(BUILD_ZSTD "enable to build with zstd" ON)
+endif()
+if (BUILD_ZSTD)
+set(ZSTD_DEFINITIONS
+ -DZSTD_BUILD_CONTRIB
+ -DZSTD_BUILD_STATIC
+ -DZSTD_BUILD_TESTS
+ -DZSTD_ZLIB_SUPPORT
+ -DZSTD_LZMA_SUPPORT
+ -DZSTD_LIB_COMPRESSION
+ -DZSTD_LIB_DECOMPRESSION
+ -DZSTD_LIB_DICTBUILDER
+ -DHAVE_LZ4
+ -DZSTD_LZ4COMPRESS
+ -DZSTD_LZ4DECOMPRESS
+ -DHAVE_PTHREAD
+ -DHAVE_THREAD
+ -DZSTD_MULTITHREAD
+ -DHAVE_ZLIB
+ -DZSTD_GZCOMPRESS
+ -DZSTD_GZDECOMPRESS
+ -DHAVE_LZMA
+ -DZSTD_LZMACOMPRESS
+ -DZSTD_LZMADECOMPRESS)
+set(ZSTD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../zstd
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/common
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/compress
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/decompress
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/deprecated
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/dictBuilder
+ ${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/legacy
+ )
+
+set(zstd_link_lib libz.so)
+
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../lz4)
+set(LZ4_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../lz4/lib/lz4.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../lz4/lib/lz4frame.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../lz4/lib/lz4hc.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../lz4/lib/xxhash.c)
+SET(LZ4_INC_IDR ${CMAKE_CURRENT_SOURCE_DIR}/../lz4 ${CMAKE_CURRENT_SOURCE_DIR}/../lz4/lib)
+
+add_library(lz4 STATIC ${LZ4_SRC})
+target_include_directories(lz4 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../lz4)
+target_compile_definitions(lz4 PRIVATE HAVE_CONFIG_H)
+
+list(APPEND zstd_link_lib lz4)
+list(APPEND ZSTD_INCLUDE_DIR ${LZ4_INC_IDR})
+endif()
+
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../xz)
+set(XZ_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../xz/adapted
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/common
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lz
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/rangecoder
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/api
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/api/lzma
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/delta
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple
+ )
+set(XZ_SRC
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/common/tuklib_physmem.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/common/tuklib_cpucores.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/common.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_util.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/easy_preset.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_common.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/hardware_physmem.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/index.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_flags_common.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/vli_size.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/hardware_cputhreads.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/alone_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_buffer_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_header_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/easy_buffer_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/easy_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/easy_encoder_memusage.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_buffer_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_flags_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/index_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_buffer_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_flags_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_flags_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/vli_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/outqueue.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_encoder_mt.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/alone_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/auto_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_buffer_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/block_header_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/easy_decoder_memusage.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_buffer_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/filter_flags_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/index_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/index_hash.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_buffer_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/stream_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/common/vli_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check/check.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check/crc32_table.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check/crc32_fast.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check/crc64_table.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check/crc64_fast.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/check/sha256.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lz/lz_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lz/lz_encoder_mf.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lz/lz_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma_encoder_presets.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma_encoder_optimum_fast.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma_encoder_optimum_normal.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/fastpos_table.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma2_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/lzma/lzma2_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/rangecoder/price_table.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/delta/delta_common.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/delta/delta_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/delta/delta_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/simple_coder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/simple_encoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/simple_decoder.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/x86.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/powerpc.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/ia64.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/arm.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/armthumb.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../xz/libxz/src/liblzma/simple/sparc.c
+ )
+
+set(XZ_DEFINES "-DHAVE_CONFIG_H"
+ "-DTUKLIB_SYMBOL_PREFIX=lzma_"
+ "-DPIC"
+ "-DLZMA_H_INTERNAL")
+
+add_library(xz SHARED ${XZ_SRC})
+target_include_directories(xz PUBLIC ${XZ_INCLUDE_DIR})
+target_compile_definitions(xz PRIVATE ${XZ_DEFINES})
+
+list(APPEND zstd_link_lib xz)
+list(APPEND ZSTD_INCLUDE_DIR XZ_INCLUDE_DIR)
+endif()
+
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/common zstd_source_common)
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/compress zstd_source_compress)
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/decompress zstd_source_decompress)
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/deprecated zstd_source_deprecated)
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/dictBuilder zstd_source_dictBuilder)
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../zstd/lib/legacy zstd_source_legacy)
+
+add_library(zstd SHARED ${zstd_source_common}
+ ${zstd_source_compress}
+ ${zstd_source_decompress}
+ ${zstd_source_deprecated}
+ ${zstd_source_dictBuilder}
+ ${zstd_source_legacy})
+
+target_compile_definitions(zstd PRIVATE ${ZSTD_DEFINITIONS})
+target_include_directories(zstd PUBLIC ${ZSTD_INCLUDE_DIR})
+
+target_link_libraries(zstd ${zstd_link_lib})
+
+list(APPEND MINIZIP_INCLUDE_DIR ${ZSTD_INCLUDE_DIR})
+list(APPEND MINIZIP_SRC ${CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_zstd.c)
+list(APPEND MINIZIP_DEFINITIONS -DHAVE_ZSTD)
+list(APPEND LinkLib zstd)
+endif()
+
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../lzma)
+option(BUILD_LZMA "enable to build with zstd" ON)
+endif()
+if (BUILD_LZMA)
+set(LZMA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lzma/lib)
+aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/../lzma/lib lzma_source)
+
+add_library(lzma SHARED ${lzma_source})
+target_compile_options(lzma PRIVATE -Wno-incompatible-pointer-types -Werror -Wimplicit-function-declaration -Wno-error=unused-command-line-argument)
+target_include_directories(lzma PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+list(APPEND MINIZIP_INCLUDE_DIR ${BZIP2_INCLUDE_DIR})
+list(APPEND MINIZIP_DEFINITIONS -DHAVE_LZMA -DLZMA_API_STATIC)
+list(APPEND MINIZIP_SRC {CMAKE_CURRENT_SOURCE_DIR}/minizip-ng/mz_strm_lzma.c)
+endif()
+
+set(MINIZIP_FLAG -fPIC
+ -Wno-error=implicit-function-declaration
+ -Wall
+ -Wextra
+ -Wno-error=missing-braces
+ -Wno-missing-braces
+ -Wno-error=visibility
+ -Wno-visibility
+ -Wno-error=unused-function
+ -Wno-unused-function
+ -Wno-error=unused-variable
+ -Wno-unused-variable
+ -Wno-error=undef
+ -Wno-error=deprecated-declarations
+ -Wno-deprecated-declarations
+ -Wno-error=sign-compare
+ -Wno-error=parentheses-equality
+ -Wno-parentheses-equality
+ -Wno-incompatible-pointer-types
+ -Wno-unused-command-line-argument
+ -Wno-error=unused-parameter
+ -Wno-unused-parameter
+ -Wno-error=header-hygiene
+ -frtti
+ -fexceptions
+ -std=gnu99)
+
+add_library(minizip_shared SHARED ${MINIZIP_SRC})
+target_include_directories(minizip_shared PUBLIC ${MINIZIP_SOURCE_DIR})
+target_compile_options(minizip_shared PRIVATE ${MINIZIP_FLAG})
+target_compile_definitions(minizip_shared PRIVATE ${MINIZIP_DEFINITIONS})
+
+target_link_libraries(minizip_shared ${LinkLib})
diff --git a/minizip-ng/README.OpenSource b/minizip-ng/README.OpenSource
index c96ef5a5000de7df17f59a81fd5d5e89ab50d1e7..3412986431cff565f06d193534a129149ce8911e 100644
--- a/minizip-ng/README.OpenSource
+++ b/minizip-ng/README.OpenSource
@@ -4,8 +4,8 @@
"License": "zlib",
"License File": "COPYRIGHT",
"Version Number": "3.0.4",
- "Owner": "caiqi14@huawei.com",
+ "Owner": "huangminzhong2@huawei.com",
"Upstream URL": "https://github.com/zlib-ng/minizip-ng",
"Description": "minizip-ng is a zip manipulation library written in C that is supported on Windows, macOS, and Linux."
}
-]
\ No newline at end of file
+]
diff --git a/minizip-ng/README_zh.md b/minizip-ng/README_zh.md
index 14ffe46ec138fb85def2628e7b1c442d96ad30fb..a3b6eb7a7f2df8aaf5bd06d4e6ce790406cbe311 100644
--- a/minizip-ng/README_zh.md
+++ b/minizip-ng/README_zh.md
@@ -1,17 +1,30 @@
# minizip-ng 三方库说明
+
## 功能简介
+
minizip是一个用C编写的zip文件操作库。
+
## 使用约束
- IDE版本:DevEco Studio 3.0 Beta4
- ROM版本:OpenHarmony3.2 Beta1
- API版本:9
- 三方库版本:3.0.4
-- 当前适配的功能:完成了创建和解压BZIP2、LZMA、XZ和ZSTD格式的zip文件
+- 当前适配的功能:
+ - 创建和解压缩zip存档。
+ - 在zip存档中添加和删除条目。
+ - 从内存中读取和写入压缩文件。
+ - Zlib、BZIP2、LZMA、XZ和ZSTD压缩方法。
+ - 跟踪并存储符号链接。
+ - 通过UTF-8编码支持Unicode文件名。
+ - 传统字符编码支持CP437、CP932、CP936、CP950。
+ - 关闭压缩、解压缩或加密的编译
+ - 将本地文件头信息归零。
+ - 压缩/解压缩中心目录以减小大小
+ - 如果中心目录损坏或丢失,则恢复该目录
- [License : zlib](https://github.com/zlib-ng/minizip-ng/tree/3.0.4/LICENSE)
## 集成方式
-+ [系统Rom包集成](docs/rom_integrate.md)
-
-
+- [系统Rom包集成](docs/rom_integrate.md)
+- [应用hap包集成](docs/hap_integrate.md)
diff --git a/minizip-ng/docs/hap_integrate.md b/minizip-ng/docs/hap_integrate.md
new file mode 100755
index 0000000000000000000000000000000000000000..364a747e87cf1ae2d2c46093f7238a42fdd39437
--- /dev/null
+++ b/minizip-ng/docs/hap_integrate.md
@@ -0,0 +1,111 @@
+# minizip-ng 如何集成到应用hap
+
+## 准备应用工程
+
+本库是基于OpenHarmony SDK API Version 9版本,在润和RK3568开发板上验证的。如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。
+
+### 准备应用开发环境
+
+- IDE版本:DevEco Studio 3.0 Release
+- SDK版本:OpenHarmony SDK
+- API版本:API Version 9
+
+应用环境准备具体可参照文档[通过IDE开发一个Napi工程](https://gitee.com/zhong-luping/samples/blob/master/docs/napi%E7%B3%BB%E5%88%97%E5%AD%A6%E4%B9%A0/docs/hello_napi.md)
+
+### 增加构建脚本及配置文件
+
+- 下载本仓库代码
+ 通过[C/C++三方库TCP仓](https://gitee.com/openharmony-sig/tpc_c_cplusplus)下载本三方库代码并将其解压。
+- 仓库代码目录结构说明
+
+ ```shell
+ tpc_c_cplusplus/minizip-ng
+ ├── docs # 存放三方库相关文档的文件夹
+ ├── BUILD.gn # 构建脚本,支持rom包集成
+ ├── bundle.json # 三方库组件定义文件
+ ├── CMakeLists.txt # 构建脚本,支持hap包集成
+ ├── README.OpenSource # 说明三方库源码的下载地址,版本,license等信息
+ ├── README_zh.md # 三方库说明文档
+ ```
+
+- 将minizip-ng目录及其下面所有文件拷贝到工程的entry\src\main\cpp\third_party目录下。
+
+### 准备三方库源码
+
+- 准备三方库源码
+ 通过[minizip-ng的github网站](https://github.com/zlib-ng/minizip-ng)下载3.0.4版本的源码包,并将源码包解压后拷贝到entry\src\main\cpp\third_party\minizip-ng目录,如下所示:
+
+ ```shell
+ minizip-ng
+ ├── docs # 存放三方库相关文档的文件夹
+ ├── BUILD.gn # 构建脚本,支持rom包集成
+ ├── bundle.json # 三方库组件定义文件
+ ├── minizip-ng # 三方库minizip-ng源码目录
+ ├── CMakeLists.txt # 构建脚本,支持hap包集成
+ ├── README.OpenSource # 说明三方库源码的下载地址,版本,license等信息
+ ├── README_zh.md
+ ```
+
+- 准备依赖库
+ minizip依赖了zstd,libiconv,lz4,xz,bzip2以及zlib等库,除了zlib是SDK中已有的,其他库都需要下载。
+ - [libiconv适配文件](https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/iconv/docs/rom_integrate.md): 参照文档下载适配代码,将整个iconv文件夹拷贝到/entry/src/main/cpp/third_party
+ [libiconv源码](https://ftp.gnu.org/gnu/libiconv/libiconv-1.7.tar.gz):下载解压后改名为libiconv,并将该源码目录拷贝到iconv文件夹中
+ - [zstd](https://github.com/facebook/zstd):下载v1.5.2版本,解压后并改为zstd
+ - [lz4](https://gitee.com/openharmony/third_party_lz4/repository/archive/master.zip):下载解压后并改名为lz4
+ - [bzip2](https://gitee.com/openharmony/third_party_bzip2/repository/archive/master.zip):下载解压后并改名为bzip2
+ - [xz适配文件](https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/xz/docs/rom_integrate.md): 参照文档下载适配代码,将整个xz文件夹拷贝到/entry/src/main/cpp/third_party
+ [xz源码](https://tukaani.org/xz/xz-5.2.6.tar.gz):下载解压后改名为libxz,并将该源码目录拷贝到xz文件夹中
+ 所有依赖库都拷贝到/entry/src/main/cpp/third_party下.
+
+## 应用中使用三方库
+
+- 应用中引入三方库,三方库目录如下:
+
+ ```shell
+ third_party
+ ├── minizip-ng # 三方库minizip-ng构建目录
+ ├── CMakeLists.txt # 构建脚本,支持hap包集成
+ ├── zstd # 三方库minizip-ng的依赖库zstd源码目录
+ ├── iconv # 三方库minizip-ng 的依赖库libiconv构建目录
+ | ├── libiconv # libiconv源码目录
+ | ├── adapter # libiconv适配代码目录
+ ├── lz4 # 三方库minizip-ng的依赖库lz4源码目录
+ ├── bzip2 # 三方库minizip-ng的依赖库bzip2源码目录
+ ├── xz # 三方库minizip-ng的依赖库xz源码目录
+ ```
+
+- 修改CMakeLists.txt文件
+ 在工程的entry\src\main\cpp\CMakeLists.txt中做以下修改:
+
+ ```cmake
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/minizip-ng)
+ add_library(entry SHARED minizipNapi.cpp minizip.cpp)
+ target_include_directories(entry PUBLIC thirdparty/minizip-ng/minizip-ng)
+ target_link_libraries(entry PUBLIC libace_napi.z.so minizip_shared)
+ ```
+
+- 应用中导入对应的库文件
+
+ ```js
+ import minizip from "libentry.so"
+ ```
+
+- 完整demo参考:
+ [minizip三方库测试源码](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/thirdparty/minizip_demo)
+
+## 编译工程
+
+- 连接上设备后,DevEco Studio就会显示被发现设备。然后,点击“运行”,即可依次完成该应用“编译”和“安装”的过程,如图:
+ 
+
+## 运行效果
+
+安装hap应用后,在ets界面依次完成:压缩文件、解压缩文件、生成带密码和带全路径的压缩文件、解压带密码和带全路径的压缩文件操作后的结果,如下图:
+ 
+
+## 参考资料
+
+- [润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)
+- [通过IDE开发一个Napi工程](https://gitee.com/zhong-luping/samples/blob/master/docs/napi%E7%B3%BB%E5%88%97%E5%AD%A6%E4%B9%A0/docs/hello_napi.md)
+- [minizip三方库测试源码](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/thirdparty/minizip_demo)
+- [OpenHarmony知识体系](https://gitee.com/openharmony-sig/knowledge)
diff --git a/minizip-ng/docs/pic/ets_results.png b/minizip-ng/docs/pic/ets_results.png
new file mode 100755
index 0000000000000000000000000000000000000000..2b22c490bf3a513efca31d6b6433992227fceefd
Binary files /dev/null and b/minizip-ng/docs/pic/ets_results.png differ
diff --git a/minizip-ng/docs/pic/install.png b/minizip-ng/docs/pic/install.png
new file mode 100755
index 0000000000000000000000000000000000000000..58ac7e732a58239c3c256f918f4cbe5dafe1601a
Binary files /dev/null and b/minizip-ng/docs/pic/install.png differ