From e56acc06846bb988636646b5b77366179de540a7 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Mon, 11 Feb 2019 08:57:53 +0000 Subject: [PATCH 1/3] fixed types & std namespace error --- zip_file.hpp | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/zip_file.hpp b/zip_file.hpp index c324f70..3e1c129 100644 --- a/zip_file.hpp +++ b/zip_file.hpp @@ -509,13 +509,13 @@ const char *mz_error(int err); // ------------------- Types and macros -typedef unsigned char mz_uint8; -typedef signed short mz_int16; -typedef unsigned short mz_uint16; -typedef unsigned int mz_uint32; +typedef uint8_t mz_uint8; +typedef int16_t mz_int16; +typedef uint16_t mz_uint16; +typedef uint32_t mz_uint32; typedef unsigned int mz_uint; -typedef long long mz_int64; -typedef unsigned long long mz_uint64; +typedef int64_t mz_int64; +typedef uint64_t mz_uint64; typedef int mz_bool; #define MZ_FALSE (0) @@ -4981,7 +4981,7 @@ char alt_directory_separator = '\\'; std::string join_path(const std::vector &parts) { std::string joined; - std::size_t i = 0; + size_t i = 0; for(auto part : parts) { joined.append(part); @@ -5029,7 +5029,7 @@ std::vector split_path(const std::string &path, char delim = direct return split; } -uint32_t crc32buf(const char *buf, std::size_t len) +uint32_t crc32buf(const char *buf, size_t len) { uint32_t oldcrc32 = 0xFFFFFFFF; @@ -5103,7 +5103,7 @@ tm safe_localtime(const time_t &t) #endif } -std::size_t write_callback(void *opaque, std::uint64_t file_ofs, const void *pBuf, std::size_t n) +size_t write_callback(void *opaque, uint64_t file_ofs, const void *pBuf, size_t n) { auto buffer = static_cast *>(opaque); @@ -5113,9 +5113,9 @@ std::size_t write_callback(void *opaque, std::uint64_t file_ofs, const void *pBu buffer->resize(new_size); } - for(std::size_t i = 0; i < n; i++) + for(size_t i = 0; i < n; i++) { - (*buffer)[static_cast(file_ofs + i)] = (static_cast(pBuf))[i]; + (*buffer)[static_cast(file_ofs + i)] = (static_cast(pBuf))[i]; } return n; @@ -5143,13 +5143,13 @@ struct zip_info uint16_t create_version = 0; uint16_t extract_version = 0; uint16_t flag_bits = 0; - std::size_t volume = 0; + size_t volume = 0; uint32_t internal_attr = 0; uint32_t external_attr = 0; - std::size_t header_offset = 0; + ssize_t header_offset = 0; uint32_t crc = 0; - std::size_t compress_size = 0; - std::size_t file_size = 0; + size_t compress_size = 0; + size_t file_size = 0; }; class zip_file @@ -5326,7 +5326,7 @@ class zip_file std::vector info; - for(std::size_t i = 0; i < mz_zip_reader_get_num_files(archive_.get()); i++) + for(size_t i = 0; i < mz_zip_reader_get_num_files(archive_.get()); i++) { info.push_back(getinfo(static_cast(i))); } @@ -5402,8 +5402,8 @@ class zip_file stream << " Length " << " " << " " << "Date" << " " << " " << "Time " << " " << "Name" << std::endl; stream << "--------- ---------- ----- ----" << std::endl; - std::size_t sum_length = 0; - std::size_t file_count = 0; + size_t sum_length = 0; + size_t file_count = 0; for(auto &member : infolist()) { @@ -5445,7 +5445,7 @@ class zip_file std::string read(const zip_info &info) { - std::size_t size; + size_t size; char *data = static_cast(mz_zip_reader_extract_file_to_heap(archive_.get(), info.filename.c_str(), &size, 0)); if(data == nullptr) { @@ -5570,7 +5570,7 @@ class zip_file case MZ_ZIP_MODE_READING: { mz_zip_archive archive_copy; - std::memset(&archive_copy, 0, sizeof(mz_zip_archive)); + memset(&archive_copy, 0, sizeof(mz_zip_archive)); std::vector buffer_copy(buffer_.begin(), buffer_.end()); if(!mz_zip_reader_init_mem(&archive_copy, buffer_copy.data(), buffer_copy.size(), 0)) @@ -5632,7 +5632,7 @@ class zip_file { if(buffer_.empty()) return; - std::size_t position = buffer_.size() - 1; + size_t position = buffer_.size() - 1; for(; position >= 3; position--) { @@ -5676,11 +5676,11 @@ class zip_file zip_info result; - result.filename = std::string(stat.m_filename, stat.m_filename + std::strlen(stat.m_filename)); + result.filename = std::string(stat.m_filename, stat.m_filename + strlen(stat.m_filename)); result.comment = std::string(stat.m_comment, stat.m_comment + stat.m_comment_size); - result.compress_size = static_cast(stat.m_comp_size); - result.file_size = static_cast(stat.m_uncomp_size); - result.header_offset = static_cast(stat.m_local_header_ofs); + result.compress_size = static_cast(stat.m_comp_size); + result.file_size = static_cast(stat.m_uncomp_size); + result.header_offset = static_cast(stat.m_local_header_ofs); result.crc = stat.m_crc32; auto time = detail::safe_localtime(stat.m_time); result.date_time.year = 1900 + time.tm_year; From e46f60027bc815c9bdda77052f844f39cd00b83f Mon Sep 17 00:00:00 2001 From: Nicolas Jarnoux Date: Wed, 5 Jun 2019 11:05:30 +0100 Subject: [PATCH 2/3] typing error --- zip_file.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zip_file.hpp b/zip_file.hpp index 3e1c129..9adf560 100644 --- a/zip_file.hpp +++ b/zip_file.hpp @@ -5146,7 +5146,7 @@ struct zip_info size_t volume = 0; uint32_t internal_attr = 0; uint32_t external_attr = 0; - ssize_t header_offset = 0; + size_t header_offset = 0; uint32_t crc = 0; size_t compress_size = 0; size_t file_size = 0; From 21499d38690f3c33cb490cb71d5b7c3171b028e7 Mon Sep 17 00:00:00 2001 From: Nicolas Jarnoux Date: Sun, 24 Jan 2021 16:22:23 +0000 Subject: [PATCH 3/3] cmake upgrade --- CMakeLists.txt | 43 ++++++++++++++++++++++++----------------- examples/CMakeLists.txt | 12 ++++++++++++ miniz-cpp-config.cmake | 4 ++++ tests/CMakeLists.txt | 5 +++++ 4 files changed, 46 insertions(+), 18 deletions(-) create mode 100644 examples/CMakeLists.txt create mode 100644 miniz-cpp-config.cmake create mode 100644 tests/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4bd829e..21f1e52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,26 +1,33 @@ cmake_minimum_required(VERSION 3.2) -project(miniz-cpp) +project(miniz-cpp VERSION 1.0) -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_CXX_STANDARD_REQUIRED ON) +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED ON) +endif() -set(TEST_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/tests/test.cpp) +option(MINIZ_BUILD_TESTS "Build tests" OFF) +option(MINIZ_BUILD_EXAMPLES "Build examples" OFF) -add_executable(miniz-cpp.test ${TEST_SOURCE}) -target_include_directories(miniz-cpp.test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) +if(${MINIZ_BUILD_TESTS}) + enable_testing() +endif() -set(EXAMPLE_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/examples/pipe.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/examples/read.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/examples/write.cpp) +set(include_dest "include/miniz-cpp-${miniz-cpp_VERSION}") +set(lib_dest "lib/mini-cpp-${miniz-cpp_VERSION}") -foreach(EXAMPLE_SOURCE IN ITEMS ${EXAMPLE_SOURCES}) - get_filename_component(EXAMPLE_NAME ${EXAMPLE_SOURCE} NAME_WE) - set(EXAMPLE_EXECUTABLE example-${EXAMPLE_NAME}) +add_library(miniz-cpp INTERFACE) +set_target_properties(miniz-cpp PROPERTIES LINKER_LANGUAGE CXX) +target_include_directories( + miniz-cpp + INTERFACE + $ + $ +) - add_executable(${EXAMPLE_EXECUTABLE} ${EXAMPLE_SOURCE}) +add_subdirectory(tests) +add_subdirectory(examples) - target_include_directories(${EXAMPLE_EXECUTABLE} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -endforeach() +# install +install(FILES zip_file.hpp DESTINATION ${include_dest}) +install(FILES miniz-cpp-config.cmake DESTINATION ${lib_dest}) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..03ed8cc --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,12 @@ +if(${MINIZ_BUILD_EXAMPLES}) + file(GLOB EXAMPLE_SOURCES *.cpp) + + foreach(EXAMPLE_SOURCE IN ITEMS ${EXAMPLE_SOURCES}) + get_filename_component(EXAMPLE_NAME ${EXAMPLE_SOURCE} NAME_WE) + set(EXAMPLE_EXECUTABLE example-${EXAMPLE_NAME}) + + add_executable(${EXAMPLE_EXECUTABLE} ${EXAMPLE_SOURCE}) + target_link_libraries(${EXAMPLE_EXECUTABLE} PUBLIC miniz-cpp) + + endforeach() +endif() \ No newline at end of file diff --git a/miniz-cpp-config.cmake b/miniz-cpp-config.cmake new file mode 100644 index 0000000..3c214c1 --- /dev/null +++ b/miniz-cpp-config.cmake @@ -0,0 +1,4 @@ +# my_library-config.cmake - package configuration file + +get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(${SELF_DIR}/miniz-cpp.cmake) \ No newline at end of file diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..01aa1cf --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,5 @@ +if(${MINIZ_BUILD_TESTS}) + add_executable(miniz-cpp.test test.cpp) + target_link_libraries(miniz-cpp.test PUBLIC miniz-cpp) + add_test(NAME miniz-cpp.test COMMAND miniz-cpp.test) +endif() \ No newline at end of file