forked from organicmaps/organicmaps
[3party] minizip is wrapped
This commit is contained in:
parent
6ef2f8db23
commit
8ef9ccce76
28 changed files with 260 additions and 97 deletions
|
@ -7,12 +7,14 @@ add_gcc_compile_options("-Wno-unused-value")
|
|||
|
||||
set(
|
||||
SRC
|
||||
ioapi.c
|
||||
ioapi.h
|
||||
unzip.c
|
||||
unzip.h
|
||||
zip.c
|
||||
zip.h
|
||||
minizip.cpp
|
||||
minizip.hpp
|
||||
src/ioapi.c
|
||||
src/ioapi.h
|
||||
src/unzip.c
|
||||
src/unzip.h
|
||||
src/zip.c
|
||||
src/zip.h
|
||||
)
|
||||
|
||||
add_library(${PROJECT_NAME} ${SRC})
|
||||
|
|
87
3party/minizip/minizip.cpp
Normal file
87
3party/minizip/minizip.cpp
Normal file
|
@ -0,0 +1,87 @@
|
|||
#include "minizip.hpp"
|
||||
|
||||
namespace unzip
|
||||
{
|
||||
File Open(std::string const & filename)
|
||||
{
|
||||
return unzOpen64(filename.c_str());
|
||||
}
|
||||
|
||||
Code Close(File file)
|
||||
{
|
||||
return static_cast<Code>(unzClose(file));
|
||||
}
|
||||
|
||||
Code SeekToFirstFile(File file)
|
||||
{
|
||||
return static_cast<Code>(unzGoToFirstFile(file));
|
||||
}
|
||||
|
||||
Code SeekToNextFile(File file)
|
||||
{
|
||||
return static_cast<Code>(unzGoToNextFile(file));
|
||||
}
|
||||
|
||||
Code SeekToFile(File file, std::string const & filename)
|
||||
{
|
||||
return static_cast<Code>(unzLocateFile(file, filename.c_str(), 1 /* iCaseSensitivity */));
|
||||
}
|
||||
|
||||
Code OpenCurrentFile(File file)
|
||||
{
|
||||
return static_cast<Code>(unzOpenCurrentFile(file));
|
||||
}
|
||||
|
||||
FilePos GetCurrentFileFilePos(File file)
|
||||
{
|
||||
return unzGetCurrentFileZStreamPos64(file);
|
||||
}
|
||||
|
||||
Code CloseCurrentFile(File file)
|
||||
{
|
||||
return static_cast<Code>(unzCloseCurrentFile(file));
|
||||
}
|
||||
|
||||
Code GetCurrentFileInfo(File file, FileInfo & info)
|
||||
{
|
||||
int constexpr kArraySize = 256;
|
||||
char fileName[kArraySize];
|
||||
auto const result = unzGetCurrentFileInfo64(file, &info.m_info, fileName,
|
||||
kArraySize, nullptr, 0, nullptr, 0);
|
||||
info.m_filename = fileName;
|
||||
return static_cast<Code>(result);
|
||||
}
|
||||
|
||||
int ReadCurrentFile(unzFile file, Buffer & result)
|
||||
{
|
||||
auto const readCount = unzReadCurrentFile(file, result.data(), kFileBufferSize);
|
||||
return readCount;
|
||||
}
|
||||
} // namespace unzip
|
||||
|
||||
namespace zip
|
||||
{
|
||||
File Create(std::string const & filename)
|
||||
{
|
||||
return zipOpen(filename.c_str(), APPEND_STATUS_CREATE);
|
||||
}
|
||||
|
||||
Code Close(File file)
|
||||
{
|
||||
return static_cast<Code>(zipClose(file, nullptr));
|
||||
}
|
||||
|
||||
Code OpenNewFileInZip(File file, std::string const & filename, FileInfo const & fileInfo,
|
||||
std::string const & comment, int method, int level)
|
||||
{
|
||||
auto result = zipOpenNewFileInZip(file, filename.c_str(), &fileInfo, nullptr, 0,
|
||||
nullptr, 0, comment.c_str(), Z_DEFLATED, Z_DEFAULT_COMPRESSION);
|
||||
return result == 0 ? Code::Ok : Code::InternalError;
|
||||
}
|
||||
|
||||
Code WriteInFileInZip(File file, Buffer const & buf, size_t count)
|
||||
{
|
||||
auto result = zipWriteInFileInZip(file, buf.data(), static_cast<unsigned int>(count));
|
||||
return result == 0 ? Code::Ok : Code::InternalError;
|
||||
}
|
||||
} // namespace zip
|
85
3party/minizip/minizip.hpp
Normal file
85
3party/minizip/minizip.hpp
Normal file
|
@ -0,0 +1,85 @@
|
|||
#pragma once
|
||||
|
||||
#include "3party/minizip/src/unzip.h"
|
||||
#include "3party/minizip/src/zip.h"
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace unzip
|
||||
{
|
||||
unsigned int static constexpr kFileBufferSize = 64 * 1024;
|
||||
static_assert(std::numeric_limits<int>::max() > kFileBufferSize, "");
|
||||
|
||||
using File = unzFile;
|
||||
using FilePos = ZPOS64_T;
|
||||
using Buffer = std::array<char, kFileBufferSize>;
|
||||
|
||||
struct FileInfo
|
||||
{
|
||||
std::string m_filename;
|
||||
unz_file_info64 m_info;
|
||||
};
|
||||
|
||||
enum class Code : int8_t
|
||||
{
|
||||
Ok = UNZ_OK,
|
||||
EndOfListOfFile = UNZ_END_OF_LIST_OF_FILE,
|
||||
ErrNo = UNZ_ERRNO,
|
||||
Eof = UNZ_OK,
|
||||
ParamError = UNZ_PARAMERROR,
|
||||
BadZipFile = UNZ_BADZIPFILE,
|
||||
InternalError = UNZ_INTERNALERROR,
|
||||
CrcError = UNZ_CRCERROR,
|
||||
};
|
||||
|
||||
File Open(std::string const & filename);
|
||||
|
||||
Code Close(File file);
|
||||
|
||||
Code SeekToFirstFile(File file);
|
||||
|
||||
Code SeekToNextFile(File file);
|
||||
|
||||
Code SeekToFile(File file, std::string const & filename);
|
||||
|
||||
Code OpenCurrentFile(File file);
|
||||
|
||||
FilePos GetCurrentFileFilePos(File file);
|
||||
|
||||
Code CloseCurrentFile(File file);
|
||||
|
||||
Code GetCurrentFileInfo(File file, FileInfo & info);
|
||||
|
||||
int ReadCurrentFile(File file, Buffer & result);
|
||||
} // namespace unzip
|
||||
|
||||
namespace zip
|
||||
{
|
||||
unsigned int constexpr kFileBufferSize = 64 * 1024;
|
||||
|
||||
using File = zipFile;
|
||||
using FileInfo = zip_fileinfo;
|
||||
using DateTime = tm_zip;
|
||||
using Buffer = std::array<char, kFileBufferSize>;
|
||||
|
||||
enum class Code : int8_t
|
||||
{
|
||||
Ok = ZIP_OK,
|
||||
Eof = ZIP_EOF,
|
||||
ErrNo = ZIP_ERRNO,
|
||||
ParamError = ZIP_PARAMERROR,
|
||||
BadZipFile = ZIP_BADZIPFILE,
|
||||
InternalError = ZIP_INTERNALERROR,
|
||||
};
|
||||
|
||||
File Create(std::string const & filename);
|
||||
|
||||
Code Close(File file);
|
||||
|
||||
Code OpenNewFileInZip(File file, std::string const & filename, FileInfo const & fileInfo,
|
||||
std::string const & comment, int method, int level);
|
||||
|
||||
Code WriteInFileInZip(File file, Buffer const & buf, size_t count);
|
||||
} // namespace zip
|
|
@ -10,7 +10,7 @@
|
|||
#include "base/logging.hpp"
|
||||
#include "base/scope_guard.hpp"
|
||||
|
||||
#include "3party/minizip/zip.h"
|
||||
#include "3party/minizip/minizip.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
|
@ -22,24 +22,24 @@ namespace
|
|||
{
|
||||
class ZipHandle
|
||||
{
|
||||
zipFile m_zipFileHandle;
|
||||
zip::File m_zipFileHandle;
|
||||
|
||||
public:
|
||||
explicit ZipHandle(std::string const & filePath)
|
||||
{
|
||||
m_zipFileHandle = zipOpen(filePath.c_str(), 0);
|
||||
m_zipFileHandle = zip::Create(filePath);
|
||||
}
|
||||
|
||||
~ZipHandle()
|
||||
{
|
||||
if (m_zipFileHandle)
|
||||
zipClose(m_zipFileHandle, NULL);
|
||||
zip::Close(m_zipFileHandle);
|
||||
}
|
||||
|
||||
zipFile Handle() const { return m_zipFileHandle; }
|
||||
zip::File Handle() const { return m_zipFileHandle; }
|
||||
};
|
||||
|
||||
void CreateTMZip(tm_zip & res)
|
||||
void CreateTMZip(zip::DateTime & res)
|
||||
{
|
||||
time_t rawtime;
|
||||
struct tm * timeinfo;
|
||||
|
@ -77,7 +77,7 @@ bool CreateZipFromPathDeflatedAndDefaultCompression(std::string const & filePath
|
|||
if (!zip.Handle())
|
||||
return false;
|
||||
|
||||
zip_fileinfo zipInfo = {};
|
||||
zip::FileInfo zipInfo = {};
|
||||
CreateTMZip(zipInfo.tmz_date);
|
||||
|
||||
std::string fileName = filePath;
|
||||
|
@ -85,8 +85,8 @@ bool CreateZipFromPathDeflatedAndDefaultCompression(std::string const & filePath
|
|||
if (!strings::IsASCIIString(fileName))
|
||||
fileName = "MapsMe.kml";
|
||||
|
||||
if (zipOpenNewFileInZip(zip.Handle(), fileName.c_str(), &zipInfo, nullptr, 0, nullptr, 0,
|
||||
"ZIP from MapsWithMe", Z_DEFLATED, Z_DEFAULT_COMPRESSION) < 0)
|
||||
if (zip::Code::Ok != zip::OpenNewFileInZip(zip.Handle(), fileName, zipInfo, "ZIP from MapsWithMe",
|
||||
Z_DEFLATED, Z_DEFAULT_COMPRESSION))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -98,14 +98,13 @@ bool CreateZipFromPathDeflatedAndDefaultCompression(std::string const & filePath
|
|||
uint64_t const fileSize = file.Size();
|
||||
|
||||
uint64_t currSize = 0;
|
||||
char buffer[ZIP_FILE_BUFFER_SIZE];
|
||||
std::array<char, zip::kFileBufferSize> buffer;
|
||||
while (currSize < fileSize)
|
||||
{
|
||||
unsigned int const toRead =
|
||||
std::min(ZIP_FILE_BUFFER_SIZE, static_cast<unsigned int>(fileSize - currSize));
|
||||
file.Read(currSize, buffer, toRead);
|
||||
auto const toRead = std::min(buffer.size(), static_cast<size_t>(fileSize - currSize));
|
||||
file.Read(currSize, buffer.data(), toRead);
|
||||
|
||||
if (ZIP_OK != zipWriteInFileInZip(zip.Handle(), buffer, toRead))
|
||||
if (zip::Code::Ok != zip::WriteInFileInZip(zip.Handle(), buffer, toRead))
|
||||
return false;
|
||||
|
||||
currSize += toRead;
|
||||
|
@ -131,14 +130,14 @@ bool CreateZipFromFiles(std::vector<std::string> const & files, std::string cons
|
|||
return false;
|
||||
|
||||
auto const compressionLevel = GetCompressionLevel(compression);
|
||||
zip_fileinfo const fileInfo = {};
|
||||
zip::FileInfo const fileInfo = {};
|
||||
|
||||
try
|
||||
{
|
||||
for (auto const & filePath : files)
|
||||
{
|
||||
if (zipOpenNewFileInZip(zip.Handle(), filePath.c_str(), &fileInfo, nullptr, 0, nullptr, 0, "",
|
||||
Z_DEFLATED, compressionLevel) != Z_OK)
|
||||
if (zip::Code::Ok != zip::OpenNewFileInZip(zip.Handle(), filePath, fileInfo, "",
|
||||
Z_DEFLATED, compressionLevel))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -146,15 +145,15 @@ bool CreateZipFromFiles(std::vector<std::string> const & files, std::string cons
|
|||
base::FileData file(filePath, base::FileData::OP_READ);
|
||||
uint64_t const fileSize = file.Size();
|
||||
uint64_t writtenSize = 0;
|
||||
std::array<char, ZIP_FILE_BUFFER_SIZE> bufferForZip;
|
||||
zip::Buffer buffer;
|
||||
|
||||
while (writtenSize < fileSize)
|
||||
{
|
||||
unsigned int const filePartSize =
|
||||
std::min(ZIP_FILE_BUFFER_SIZE, static_cast<unsigned int>(fileSize - writtenSize));
|
||||
file.Read(writtenSize, bufferForZip.data(), filePartSize);
|
||||
auto const filePartSize =
|
||||
std::min(buffer.size(), static_cast<size_t>(fileSize - writtenSize));
|
||||
file.Read(writtenSize, buffer.data(), filePartSize);
|
||||
|
||||
if (zipWriteInFileInZip(zip.Handle(), bufferForZip.data(), filePartSize) != ZIP_OK)
|
||||
if (zip::Code::Ok != zip::WriteInFileInZip(zip.Handle(), buffer, filePartSize))
|
||||
return false;
|
||||
|
||||
writtenSize += filePartSize;
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
#include "base/logging.hpp"
|
||||
#include "base/scope_guard.hpp"
|
||||
|
||||
#include "3party/minizip/unzip.h"
|
||||
#include <array>
|
||||
|
||||
#include "3party/minizip/minizip.hpp"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -44,61 +46,60 @@ ZipFileReader::ZipFileReader(string const & container, string const & file, uint
|
|||
uint32_t logPageCount)
|
||||
: FileReader(container, logPageSize, logPageCount), m_uncompressedFileSize(0)
|
||||
{
|
||||
unzFile zip = unzOpen64(container.c_str());
|
||||
auto zip = unzip::Open(container.c_str());
|
||||
if (!zip)
|
||||
MYTHROW(OpenZipException, ("Can't get zip file handle", container));
|
||||
|
||||
SCOPE_GUARD(zipGuard, bind(&unzClose, zip));
|
||||
|
||||
if (UNZ_OK != unzLocateFile(zip, file.c_str(), 1))
|
||||
if (unzip::Code::Ok != unzip::SeekToFile(zip, file.c_str()))
|
||||
MYTHROW(LocateZipException, ("Can't locate file inside zip", file));
|
||||
|
||||
if (UNZ_OK != unzOpenCurrentFile(zip))
|
||||
if (unzip::Code::Ok != unzip::OpenCurrentFile(zip))
|
||||
MYTHROW(LocateZipException, ("Can't open file inside zip", file));
|
||||
|
||||
uint64_t const offset = unzGetCurrentFileZStreamPos64(zip);
|
||||
(void) unzCloseCurrentFile(zip);
|
||||
auto const offset = unzip::GetCurrentFileFilePos(zip);
|
||||
unzip::CloseCurrentFile(zip);
|
||||
|
||||
if (offset == 0 || offset > Size())
|
||||
MYTHROW(LocateZipException, ("Invalid offset inside zip", file));
|
||||
|
||||
unz_file_info64 fileInfo;
|
||||
if (UNZ_OK != unzGetCurrentFileInfo64(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0))
|
||||
unzip::FileInfo fileInfo;
|
||||
if (unzip::Code::Ok != unzip::GetCurrentFileInfo(zip, fileInfo))
|
||||
MYTHROW(LocateZipException, ("Can't get compressed file size inside zip", file));
|
||||
|
||||
SetOffsetAndSize(offset, fileInfo.compressed_size);
|
||||
m_uncompressedFileSize = fileInfo.uncompressed_size;
|
||||
SetOffsetAndSize(offset, fileInfo.m_info.compressed_size);
|
||||
m_uncompressedFileSize = fileInfo.m_info.uncompressed_size;
|
||||
}
|
||||
|
||||
void ZipFileReader::FilesList(string const & zipContainer, FileList & filesList)
|
||||
{
|
||||
unzFile const zip = unzOpen64(zipContainer.c_str());
|
||||
auto const zip = unzip::Open(zipContainer.c_str());
|
||||
if (!zip)
|
||||
MYTHROW(OpenZipException, ("Can't get zip file handle", zipContainer));
|
||||
|
||||
SCOPE_GUARD(zipGuard, bind(&unzClose, zip));
|
||||
|
||||
if (UNZ_OK != unzGoToFirstFile(zip))
|
||||
if (unzip::Code::Ok != unzip::SeekToFirstFile(zip))
|
||||
MYTHROW(LocateZipException, ("Can't find first file inside zip", zipContainer));
|
||||
|
||||
do
|
||||
{
|
||||
char fileName[256];
|
||||
unz_file_info64 fileInfo;
|
||||
if (UNZ_OK != unzGetCurrentFileInfo64(zip, &fileInfo, fileName, ARRAY_SIZE(fileName), NULL, 0, NULL, 0))
|
||||
unzip::FileInfo fileInfo;
|
||||
if (unzip::Code::Ok != unzip::GetCurrentFileInfo(zip, fileInfo))
|
||||
MYTHROW(LocateZipException, ("Can't get file name inside zip", zipContainer));
|
||||
|
||||
filesList.push_back(make_pair(fileName, fileInfo.uncompressed_size));
|
||||
filesList.push_back(make_pair(fileInfo.m_filename, fileInfo.m_info.uncompressed_size));
|
||||
|
||||
} while (UNZ_OK == unzGoToNextFile(zip));
|
||||
} while (unzip::Code::Ok == unzip::SeekToNextFile(zip));
|
||||
}
|
||||
|
||||
bool ZipFileReader::IsZip(string const & zipContainer)
|
||||
{
|
||||
unzFile zip = unzOpen64(zipContainer.c_str());
|
||||
auto zip = unzip::Open(zipContainer);
|
||||
if (!zip)
|
||||
return false;
|
||||
unzClose(zip);
|
||||
unzip::Close(zip);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -106,36 +107,36 @@ bool ZipFileReader::IsZip(string const & zipContainer)
|
|||
void ZipFileReader::UnzipFile(string const & zipContainer, string const & fileInZip,
|
||||
Delegate & delegate)
|
||||
{
|
||||
unzFile zip = unzOpen64(zipContainer.c_str());
|
||||
auto zip = unzip::Open(zipContainer);
|
||||
if (!zip)
|
||||
MYTHROW(OpenZipException, ("Can't get zip file handle", zipContainer));
|
||||
SCOPE_GUARD(zipGuard, bind(&unzClose, zip));
|
||||
SCOPE_GUARD(zipGuard, bind(&unzip::Close, zip));
|
||||
|
||||
if (UNZ_OK != unzLocateFile(zip, fileInZip.c_str(), 1))
|
||||
if (unzip::Code::Ok != unzip::SeekToFile(zip, fileInZip))
|
||||
MYTHROW(LocateZipException, ("Can't locate file inside zip", fileInZip));
|
||||
|
||||
if (UNZ_OK != unzOpenCurrentFile(zip))
|
||||
if (unzip::Code::Ok != unzip::OpenCurrentFile(zip))
|
||||
MYTHROW(LocateZipException, ("Can't open file inside zip", fileInZip));
|
||||
SCOPE_GUARD(currentFileGuard, bind(&unzCloseCurrentFile, zip));
|
||||
SCOPE_GUARD(currentFileGuard, bind(&unzip::CloseCurrentFile, zip));
|
||||
|
||||
unz_file_info64 fileInfo;
|
||||
if (UNZ_OK != unzGetCurrentFileInfo64(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0))
|
||||
unzip::FileInfo fileInfo;
|
||||
if (unzip::Code::Ok != unzip::GetCurrentFileInfo(zip, fileInfo))
|
||||
MYTHROW(LocateZipException, ("Can't get uncompressed file size inside zip", fileInZip));
|
||||
|
||||
char buf[ZIP_FILE_BUFFER_SIZE];
|
||||
std::array<char, unzip::kFileBufferSize> buf;
|
||||
int readBytes = 0;
|
||||
|
||||
delegate.OnStarted();
|
||||
do
|
||||
{
|
||||
readBytes = unzReadCurrentFile(zip, buf, ZIP_FILE_BUFFER_SIZE);
|
||||
readBytes = unzip::ReadCurrentFile(zip, buf);
|
||||
if (readBytes < 0)
|
||||
{
|
||||
MYTHROW(InvalidZipException,
|
||||
("Error", readBytes, "while unzipping", fileInZip, "from", zipContainer));
|
||||
}
|
||||
|
||||
delegate.OnBlockUnzipped(static_cast<size_t>(readBytes), buf);
|
||||
delegate.OnBlockUnzipped(static_cast<size_t>(readBytes), buf.data());
|
||||
} while (readBytes != 0);
|
||||
delegate.OnCompleted();
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
|
||||
namespace generator
|
||||
{
|
||||
|
|
|
@ -7,32 +7,24 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
671F59221B8759350032311E /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 671F59151B8759350032311E /* crypt.h */; };
|
||||
671F59231B8759350032311E /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 671F59161B8759350032311E /* ioapi.c */; };
|
||||
671F59241B8759350032311E /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 671F59171B8759350032311E /* ioapi.h */; };
|
||||
671F59281B8759350032311E /* minizip.c in Sources */ = {isa = PBXBuildFile; fileRef = 671F591B1B8759350032311E /* minizip.c */; };
|
||||
671F59291B8759350032311E /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = 671F591C1B8759350032311E /* mztools.c */; };
|
||||
671F592A1B8759350032311E /* mztools.h in Headers */ = {isa = PBXBuildFile; fileRef = 671F591D1B8759350032311E /* mztools.h */; };
|
||||
671F592B1B8759350032311E /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 671F591E1B8759350032311E /* unzip.c */; };
|
||||
671F592C1B8759350032311E /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 671F591F1B8759350032311E /* unzip.h */; };
|
||||
671F592D1B8759350032311E /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 671F59201B8759350032311E /* zip.c */; };
|
||||
671F592E1B8759350032311E /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 671F59211B8759350032311E /* zip.h */; };
|
||||
3D40DEBB23EB5E0100A0153A /* minizip.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D40DEA223EB5E0100A0153A /* minizip.hpp */; };
|
||||
3D40DECA23EB5E0100A0153A /* minizip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D40DEBA23EB5E0100A0153A /* minizip.cpp */; };
|
||||
3D40DECD23EC069300A0153A /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D40DECB23EC069300A0153A /* zip.c */; };
|
||||
3D40DECE23EC069300A0153A /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D40DECC23EC069300A0153A /* zip.h */; };
|
||||
3D40DED123EC071400A0153A /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D40DECF23EC071400A0153A /* unzip.c */; };
|
||||
3D40DED223EC071400A0153A /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D40DED023EC071400A0153A /* unzip.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
34EBB47C1DBF525A005BE9B8 /* common-debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-debug.xcconfig"; path = "../common-debug.xcconfig"; sourceTree = "<group>"; };
|
||||
34EBB47D1DBF525A005BE9B8 /* common-release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-release.xcconfig"; path = "../common-release.xcconfig"; sourceTree = "<group>"; };
|
||||
3D40DEA223EB5E0100A0153A /* minizip.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = minizip.hpp; sourceTree = "<group>"; };
|
||||
3D40DEBA23EB5E0100A0153A /* minizip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minizip.cpp; sourceTree = "<group>"; };
|
||||
3D40DECB23EC069300A0153A /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = src/zip.c; sourceTree = "<group>"; };
|
||||
3D40DECC23EC069300A0153A /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = src/zip.h; sourceTree = "<group>"; };
|
||||
3D40DECF23EC071400A0153A /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unzip.c; path = src/unzip.c; sourceTree = "<group>"; };
|
||||
3D40DED023EC071400A0153A /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = src/unzip.h; sourceTree = "<group>"; };
|
||||
671F590C1B87568D0032311E /* libminizip.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libminizip.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
671F59151B8759350032311E /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypt.h; sourceTree = "<group>"; };
|
||||
671F59161B8759350032311E /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = "<group>"; };
|
||||
671F59171B8759350032311E /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ioapi.h; sourceTree = "<group>"; };
|
||||
671F591B1B8759350032311E /* minizip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = minizip.c; sourceTree = "<group>"; };
|
||||
671F591C1B8759350032311E /* mztools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mztools.c; sourceTree = "<group>"; };
|
||||
671F591D1B8759350032311E /* mztools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mztools.h; sourceTree = "<group>"; };
|
||||
671F591E1B8759350032311E /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = unzip.c; sourceTree = "<group>"; };
|
||||
671F591F1B8759350032311E /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unzip.h; sourceTree = "<group>"; };
|
||||
671F59201B8759350032311E /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip.c; sourceTree = "<group>"; };
|
||||
671F59211B8759350032311E /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zip.h; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -67,16 +59,12 @@
|
|||
671F59131B8756990032311E /* minizip */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
671F59151B8759350032311E /* crypt.h */,
|
||||
671F59161B8759350032311E /* ioapi.c */,
|
||||
671F59171B8759350032311E /* ioapi.h */,
|
||||
671F591B1B8759350032311E /* minizip.c */,
|
||||
671F591C1B8759350032311E /* mztools.c */,
|
||||
671F591D1B8759350032311E /* mztools.h */,
|
||||
671F591E1B8759350032311E /* unzip.c */,
|
||||
671F591F1B8759350032311E /* unzip.h */,
|
||||
671F59201B8759350032311E /* zip.c */,
|
||||
671F59211B8759350032311E /* zip.h */,
|
||||
3D40DECF23EC071400A0153A /* unzip.c */,
|
||||
3D40DED023EC071400A0153A /* unzip.h */,
|
||||
3D40DECB23EC069300A0153A /* zip.c */,
|
||||
3D40DECC23EC069300A0153A /* zip.h */,
|
||||
3D40DEBA23EB5E0100A0153A /* minizip.cpp */,
|
||||
3D40DEA223EB5E0100A0153A /* minizip.hpp */,
|
||||
);
|
||||
name = minizip;
|
||||
path = ../../3party/minizip;
|
||||
|
@ -89,11 +77,9 @@
|
|||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
671F592E1B8759350032311E /* zip.h in Headers */,
|
||||
671F59221B8759350032311E /* crypt.h in Headers */,
|
||||
671F592C1B8759350032311E /* unzip.h in Headers */,
|
||||
671F59241B8759350032311E /* ioapi.h in Headers */,
|
||||
671F592A1B8759350032311E /* mztools.h in Headers */,
|
||||
3D40DED223EC071400A0153A /* unzip.h in Headers */,
|
||||
3D40DECE23EC069300A0153A /* zip.h in Headers */,
|
||||
3D40DEBB23EB5E0100A0153A /* minizip.hpp in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -136,6 +122,7 @@
|
|||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
);
|
||||
mainGroup = 671F59031B87568D0032311E;
|
||||
|
@ -153,11 +140,9 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
671F592B1B8759350032311E /* unzip.c in Sources */,
|
||||
671F59231B8759350032311E /* ioapi.c in Sources */,
|
||||
671F59281B8759350032311E /* minizip.c in Sources */,
|
||||
671F592D1B8759350032311E /* zip.c in Sources */,
|
||||
671F59291B8759350032311E /* mztools.c in Sources */,
|
||||
3D40DED123EC071400A0153A /* unzip.c in Sources */,
|
||||
3D40DECA23EB5E0100A0153A /* minizip.cpp in Sources */,
|
||||
3D40DECD23EC069300A0153A /* zip.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -192,6 +177,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
|
@ -200,6 +186,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
|
@ -220,6 +207,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = "Production Full";
|
||||
|
|
Loading…
Add table
Reference in a new issue