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 |