Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 25 additions & 18 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${include_dest}>
)

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})
12 changes: 12 additions & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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()
4 changes: 4 additions & 0 deletions miniz-cpp-config.cmake
Original file line number Diff line number Diff line change
@@ -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)
5 changes: 5 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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()
50 changes: 25 additions & 25 deletions zip_file.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -4981,7 +4981,7 @@ char alt_directory_separator = '\\';
std::string join_path(const std::vector<std::string> &parts)
{
std::string joined;
std::size_t i = 0;
size_t i = 0;
for(auto part : parts)
{
joined.append(part);
Expand Down Expand Up @@ -5029,7 +5029,7 @@ std::vector<std::string> 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;

Expand Down Expand Up @@ -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<std::vector<char> *>(opaque);

Expand All @@ -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<std::size_t>(file_ofs + i)] = (static_cast<const char *>(pBuf))[i];
(*buffer)[static_cast<size_t>(file_ofs + i)] = (static_cast<const char *>(pBuf))[i];
}

return n;
Expand Down Expand Up @@ -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;
size_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
Expand Down Expand Up @@ -5326,7 +5326,7 @@ class zip_file

std::vector<zip_info> 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<int>(i)));
}
Expand Down Expand Up @@ -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())
{
Expand Down Expand Up @@ -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<char *>(mz_zip_reader_extract_file_to_heap(archive_.get(), info.filename.c_str(), &size, 0));
if(data == nullptr)
{
Expand Down Expand Up @@ -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<char> buffer_copy(buffer_.begin(), buffer_.end());

if(!mz_zip_reader_init_mem(&archive_copy, buffer_copy.data(), buffer_copy.size(), 0))
Expand Down Expand Up @@ -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--)
{
Expand Down Expand Up @@ -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<std::size_t>(stat.m_comp_size);
result.file_size = static_cast<std::size_t>(stat.m_uncomp_size);
result.header_offset = static_cast<std::size_t>(stat.m_local_header_ofs);
result.compress_size = static_cast<size_t>(stat.m_comp_size);
result.file_size = static_cast<size_t>(stat.m_uncomp_size);
result.header_offset = static_cast<size_t>(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;
Expand Down