1 | \section{Overview}\label{index_overview}
|
---|
2 | QuaZIP is a simple C++ wrapper over {\tt Gilles Vollant's ZIP/UNZIP package} that can be used to access ZIP archives. It uses {\tt the Qt toolkit}.
|
---|
3 |
|
---|
4 | If you do not know what {\bf Qt} is, you have two options:
|
---|
5 | \begin{DoxyItemize}
|
---|
6 | \item Just forget about QuaZIP.
|
---|
7 | \item Learn more about {\bf Qt} by downloading it and/or reading the excellent {\tt official Qt documentation}
|
---|
8 | \end{DoxyItemize}
|
---|
9 |
|
---|
10 | The choice is yours, but if you are really interested in cross-\/platform (Windows/Linux/BSD/UNIX/Mac/Others) software development, I would definitely recommend you the latter $^\wedge$\_\-$^\wedge$
|
---|
11 |
|
---|
12 | QuaZIP allows you to access files inside ZIP archives using {\bf QIODevice} API, and -\/ yes! -\/ that means that you can also use {\bf QTextStream}, {\bf QDataStream} or whatever you would like to use on your zipped files.
|
---|
13 |
|
---|
14 | QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both reading from and writing to ZIP archives.\section{Download QuaZIP}\label{index_download}
|
---|
15 | Downloads are available from {\tt QuaZIP project's page at SourceForge.net}.\section{Platforms supported}\label{index_platforms}
|
---|
16 | QuaZIP has been currently tested on the following platforms:
|
---|
17 | \begin{DoxyItemize}
|
---|
18 | \item linux-\/g++ (Ubuntu 11.10, {\bf Qt} 4.7.4)
|
---|
19 | \item freebsd-\/g++ ({\bf Qt} 4.0.0
|
---|
20 | \item hpux-\/acc (HP-\/UX 11.11)
|
---|
21 | \item hpux-\/g++ (HP-\/UX 11.11)
|
---|
22 | \item win32-\/g++ (MinGW)
|
---|
23 | \item win32-\/msvc2010 (MS VS 2010 Express, {\bf Qt} 4.8.4)
|
---|
24 | \item win32-\/msvc2010 ({\bf Qt} Creator, {\bf Qt} 5.0.1)
|
---|
25 | \item win32-\/msvc2012 ({\bf Qt} Creator, {\bf Qt} 5.2.0)
|
---|
26 | \item some Symbian version, reportedly
|
---|
27 | \end{DoxyItemize}
|
---|
28 |
|
---|
29 | No testing has been officially done on other systems. Of course, patches to make it work on any platform that it currently does not work on are always welcome!\section{What is new in this version of QuaZIP?}\label{index_whats-new}
|
---|
30 | See the NEWS.txt file supplied with the distribution.\section{Requirements}\label{index_Requirements}
|
---|
31 | Just {\tt zlib} and {\bf Qt} 4/5. Well, {\bf Qt} 4 depends on zlib anyway, but you will need zlib headers to compile QuaZIP. With Qt5 sometimes you need the zlib library as well (on Windows, for example).\section{Building, testing and installing}\label{index_building}
|
---|
32 | \begin{DoxyNote}{Note}
|
---|
33 | Instructions given in this section assume that you are using some UNIX dialect, but the build process should be very similar on win32-\/g++ platform too. On other platforms it's essentially the same process, maybe with some qmake adjustments not specific to QuaZIP itself.
|
---|
34 | \end{DoxyNote}
|
---|
35 | To build the library, run: \begin{DoxyVerb}
|
---|
36 | $ cd /wherever/quazip/source/is/quazip-x.y.z/quazip
|
---|
37 | $ qmake [PREFIX=where-to-install]
|
---|
38 | $ make
|
---|
39 | \end{DoxyVerb}
|
---|
40 |
|
---|
41 |
|
---|
42 | Make sure that you have {\bf Qt} 4/5 installed with all required headers and utilities (that is, including the 'dev' or 'devel' package on Linux) and that you run qmake utility of the {\bf Qt} 4, not some other version you may have already installed (you may need to type full path to qmake like /usr/local/qt4/bin/qmake).
|
---|
43 |
|
---|
44 | To reconfigure (with another PREFIX, for example), just run qmake with appropriate arguments again.
|
---|
45 |
|
---|
46 | If you need to specify additional include path or libraries, use qmake features (see qmake reference in the {\bf Qt} documentation). For example:
|
---|
47 |
|
---|
48 | \begin{DoxyVerb}
|
---|
49 | $ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include
|
---|
50 | \end{DoxyVerb}
|
---|
51 | (note abscence of \char`\"{}-\/I\char`\"{} before the include path and the presence of \char`\"{}-\/L\char`\"{} before the lib path)
|
---|
52 |
|
---|
53 | Also note that you may or may not need to define ZLIB\_\-WINAPI (qmake DEFINES+=ZLIB\_\-WINAPI) when linking to zlib on Windows, depending on how zlib was built (generally, if using zlibwapi.dll, this define is needed).
|
---|
54 |
|
---|
55 | To install compiled library: \begin{DoxyVerb}
|
---|
56 | $ make install
|
---|
57 | \end{DoxyVerb}
|
---|
58 |
|
---|
59 |
|
---|
60 | By default, QuaZIP compiles as a DLL/SO, but you have other options:
|
---|
61 | \begin{DoxyItemize}
|
---|
62 | \item Just copy appropriate source files to your project and use them, but you need to define QUAZIP\_\-STATIC before including any QuaZIP headers (best done as a compiler option). This will save you from possible side effects of importing/exporting QuaZIP symbols.
|
---|
63 | \item Compile it as a static library using CONFIG += staticlib qmake option. QUAZIP\_\-STATIC is defined automatically by qmake in this case.
|
---|
64 | \end{DoxyItemize}
|
---|
65 |
|
---|
66 | Binary compatibility is guaranteed between minor releases starting with version 0.5, thanks to the Pimpl idiom. That is, the next binary incompatible version will be 1.x.\section{Testing}\label{index_test}
|
---|
67 | To check if QuaZIP's basic features work OK on your platform, you may wish to compile the test suite provided in test directory: \begin{DoxyVerb}
|
---|
68 | $ cd /wherever/quazip/source/is/quazip-x.y.z/qztest
|
---|
69 | $ qmake
|
---|
70 | $ make
|
---|
71 | $ ./qztest
|
---|
72 | \end{DoxyVerb}
|
---|
73 |
|
---|
74 |
|
---|
75 | Note that the test suite looks for the quazip library in the \char`\"{}quazip\char`\"{} folder of the project (\char`\"{}../quazip\char`\"{}), but you may wish to use LIBS for some systems (Windows often puts the library in the separate \char`\"{}debug\char`\"{} or \char`\"{}release\char`\"{} directory). If you wish to use the quazip version that's already installed, provide the appropriate path.
|
---|
76 |
|
---|
77 | On some systems you may need to set PATH, LD\_\-LIBRARY\_\-PATH or SHLIB\_\-PATH to get \char`\"{}qztest\char`\"{} to actually run.
|
---|
78 |
|
---|
79 | If everything went fine, the test suite should report a lot of PASS messages. If something goes wrong, it will provide details and a warning that some tests failed.\section{Using}\label{index_using}
|
---|
80 | See \doxyref{usage page}{p.}{usage}.\section{Authors and contacts}\label{index_contacts}
|
---|
81 | This wrapper has been written by Sergey A. Tachenov, AKA Alqualos. This is my first open source project, so it may suck, but I did not find anything like that, so I just had no other choice but to write it.
|
---|
82 |
|
---|
83 | If you have anything to say to me about QuaZIP library, feel free to do so (read the \doxyref{QuaZip FAQ}{p.}{faq} first, though). I can not promise, though, that I fix all the bugs you report in, add any features you want, or respond to your critics, or respond to your feedback at all. I may be busy, I may be tired of working on QuaZIP, I may be even dead already (you never know...).
|
---|
84 |
|
---|
85 | To report bugs or to post ideas about what should be done, use SourceForge.net's {\tt trackers}. If you want to send me a private message, use my e-\/mail address {\tt stachenov@gmail.com}.
|
---|
86 |
|
---|
87 | Do not use e-\/mail to report bugs, please. Reporting bugs and problems with the SourceForge.net's bug report system has that advantage that it is visible to public, and I can always search for open tickets that were created long ago. It is highly unlikely that I will search my mail for that kind of stuff, so if a bug reported by mail isn't fixed immediately, it will likely be forgotten forever.
|
---|
88 |
|
---|
89 | Copyright (C) 2005-\/2014 Sergey A. Tachenov and contributors
|
---|