| 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 |