[1050] | 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
|
---|