| 1 |
/** |
| 2 |
* \mainpage QuaZIP - Qt/C++ wrapper for ZIP/UNZIP package |
| 3 |
* |
| 4 |
\htmlonly |
| 5 |
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=142688&type=7" style="width:210; height:62; border:none; float:right;" alt="Powered by SourceForge.net" /></a> |
| 6 |
\endhtmlonly |
| 7 |
* \section overview Overview |
| 8 |
* |
| 9 |
* QuaZIP is a simple C++ wrapper over <a |
| 10 |
* href="http://www.winimage.com/zLibDll/minizip.html">Gilles Vollant's ZIP/UNZIP |
| 11 |
* package</a> that can be used to access ZIP archives. It uses <a |
| 12 |
* href="http://qt.digia.com/">the Qt toolkit</a>. |
| 13 |
* |
| 14 |
* If you do not know what Qt is, you have two options: |
| 15 |
* - Just forget about QuaZIP. |
| 16 |
* - Learn more about Qt by downloading it and/or reading the excellent <a |
| 17 |
* href="http://qt-project.org/doc/">official Qt documentation</a> |
| 18 |
* |
| 19 |
* The choice is yours, but if you are really interested in |
| 20 |
* cross-platform (Windows/Linux/BSD/UNIX/Mac/Others) software |
| 21 |
* development, I would definitely recommend you the latter ^_^ |
| 22 |
* |
| 23 |
* QuaZIP allows you to access files inside ZIP archives using QIODevice |
| 24 |
* API, and - yes! - that means that you can also use QTextStream, |
| 25 |
* QDataStream or whatever you would like to use on your zipped files. |
| 26 |
* |
| 27 |
* QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both |
| 28 |
* reading from and writing to ZIP archives. |
| 29 |
* |
| 30 |
* \section download Download QuaZIP |
| 31 |
* |
| 32 |
* Downloads are available from <a |
| 33 |
* href="http://sourceforge.net/projects/quazip/">QuaZIP project's page |
| 34 |
* at SourceForge.net</a>. |
| 35 |
* |
| 36 |
* \section platforms Platforms supported |
| 37 |
* |
| 38 |
* QuaZIP has been currently tested on the following platforms: |
| 39 |
* - linux-g++ (Ubuntu 11.10, Qt 4.7.4) |
| 40 |
* - freebsd-g++ (Qt 4.0.0 |
| 41 |
* - hpux-acc (HP-UX 11.11) |
| 42 |
* - hpux-g++ (HP-UX 11.11) |
| 43 |
* - win32-g++ (MinGW) |
| 44 |
* - win32-msvc2010 (MS VS 2010 Express, Qt 4.8.4) |
| 45 |
* - win32-msvc2010 (Qt Creator, Qt 5.0.1) |
| 46 |
* - win32-msvc2012 (Qt Creator, Qt 5.2.0) |
| 47 |
* - some Symbian version, reportedly |
| 48 |
* |
| 49 |
* No testing has been officially done on other systems. Of course, patches to |
| 50 |
* make it work on any platform that it currently does not work on are |
| 51 |
* always welcome! |
| 52 |
* |
| 53 |
* \section whats-new What is new in this version of QuaZIP? |
| 54 |
* |
| 55 |
* See the NEWS.txt file supplied with the distribution. |
| 56 |
* |
| 57 |
* \section Requirements |
| 58 |
* |
| 59 |
* Just <a href="http://www.zlib.org/">zlib</a> and Qt 4/5. Well, Qt 4 |
| 60 |
* depends on zlib anyway, but you will need zlib headers to compile |
| 61 |
* QuaZIP. With Qt5 sometimes you need the zlib library as well (on |
| 62 |
* Windows, for example). |
| 63 |
* |
| 64 |
* \section building Building, testing and installing |
| 65 |
* |
| 66 |
* \note Instructions given in this section assume that you are |
| 67 |
* using some UNIX dialect, but the build process should be very similar |
| 68 |
* on win32-g++ platform too. On other platforms it's essentially the |
| 69 |
* same process, maybe with some qmake adjustments not specific to |
| 70 |
* QuaZIP itself. |
| 71 |
* |
| 72 |
* To build the library, run: |
| 73 |
\verbatim |
| 74 |
$ cd /wherever/quazip/source/is/quazip-x.y.z/quazip |
| 75 |
$ qmake [PREFIX=where-to-install] |
| 76 |
$ make |
| 77 |
\endverbatim |
| 78 |
* |
| 79 |
* Make sure that you have Qt 4/5 installed with all required headers and |
| 80 |
* utilities (that is, including the 'dev' or 'devel' package on Linux) |
| 81 |
* and that you run qmake utility of the Qt 4, not some other version |
| 82 |
* you may have already installed (you may need to type full path to |
| 83 |
* qmake like /usr/local/qt4/bin/qmake). |
| 84 |
* |
| 85 |
* To reconfigure (with another PREFIX, for example), just run qmake |
| 86 |
* with appropriate arguments again. |
| 87 |
* |
| 88 |
* If you need to specify additional include path or libraries, use |
| 89 |
* qmake features (see qmake reference in the Qt documentation). For |
| 90 |
* example: |
| 91 |
* |
| 92 |
\verbatim |
| 93 |
$ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include |
| 94 |
\endverbatim |
| 95 |
* (note abscence of "-I" before the include path and the presence of "-L" |
| 96 |
* before the lib path) |
| 97 |
* |
| 98 |
* Also note that you may or may not need to define ZLIB_WINAPI (qmake |
| 99 |
* DEFINES+=ZLIB_WINAPI) when linking to zlib on Windows, depending on |
| 100 |
* how zlib was built (generally, if using zlibwapi.dll, this define is |
| 101 |
* needed). |
| 102 |
* |
| 103 |
* To install compiled library: |
| 104 |
\verbatim |
| 105 |
$ make install |
| 106 |
\endverbatim |
| 107 |
* |
| 108 |
* By default, QuaZIP compiles as a DLL/SO, but you have other |
| 109 |
* options: |
| 110 |
* - Just copy appropriate source files to your project and use them, |
| 111 |
* but you need to define QUAZIP_STATIC before including any QuaZIP |
| 112 |
* headers (best done as a compiler option). This will save you from |
| 113 |
* possible side effects of importing/exporting QuaZIP symbols. |
| 114 |
* - Compile it as a static library using CONFIG += staticlib qmake |
| 115 |
* option. QUAZIP_STATIC is defined automatically by qmake in this case. |
| 116 |
* |
| 117 |
* Binary compatibility is guaranteed between minor releases starting |
| 118 |
* with version 0.5, thanks to the Pimpl idiom. That is, the next binary |
| 119 |
* incompatible version will be 1.x. |
| 120 |
* |
| 121 |
* \section test Testing |
| 122 |
* |
| 123 |
* To check if QuaZIP's basic features work OK on your platform, you may |
| 124 |
* wish to compile the test suite provided in test directory: |
| 125 |
\verbatim |
| 126 |
$ cd /wherever/quazip/source/is/quazip-x.y.z/qztest |
| 127 |
$ qmake |
| 128 |
$ make |
| 129 |
$ ./qztest |
| 130 |
\endverbatim |
| 131 |
* |
| 132 |
* Note that the test suite looks for the quazip library in the "quazip" |
| 133 |
* folder of the project ("../quazip"), but you may wish to use LIBS |
| 134 |
* for some systems (Windows often puts the library in the separate |
| 135 |
* "debug" or "release" directory). If you wish to use the quazip |
| 136 |
* version that's already installed, provide the appropriate path. |
| 137 |
* |
| 138 |
* On some systems you may need to set PATH, LD_LIBRARY_PATH or |
| 139 |
* SHLIB_PATH to get "qztest" to actually run. |
| 140 |
* |
| 141 |
* If everything went fine, the test suite should report a lot of PASS |
| 142 |
* messages. If something goes wrong, it will provide details and a |
| 143 |
* warning that some tests failed. |
| 144 |
* |
| 145 |
* \section using Using |
| 146 |
* |
| 147 |
* See \ref usage "usage page". |
| 148 |
* |
| 149 |
* \section contacts Authors and contacts |
| 150 |
* |
| 151 |
* This wrapper has been written by Sergey A. Tachenov, AKA Alqualos. |
| 152 |
* This is my first open source project, so it may suck, but I did not |
| 153 |
* find anything like that, so I just had no other choice but to write |
| 154 |
* it. |
| 155 |
* |
| 156 |
* If you have anything to say to me about QuaZIP library, feel free to |
| 157 |
* do so (read the \ref faq first, though). I can not promise, |
| 158 |
* though, that I fix all the bugs you report in, add any features you |
| 159 |
* want, or respond to your critics, or respond to your feedback at all. |
| 160 |
* I may be busy, I may be tired of working on QuaZIP, I may be even |
| 161 |
* dead already (you never know...). |
| 162 |
* |
| 163 |
* To report bugs or to post ideas about what should be done, use |
| 164 |
* SourceForge.net's <a |
| 165 |
* href="http://sourceforge.net/tracker/?group_id=142688">trackers</a>. |
| 166 |
* If you want to send me a private message, use my e-mail address |
| 167 |
* stachenov@gmail.com. |
| 168 |
* |
| 169 |
* Do not use e-mail to report bugs, please. Reporting bugs and problems |
| 170 |
* with the SourceForge.net's bug report system has that advantage that |
| 171 |
* it is visible to public, and I can always search for open tickets |
| 172 |
* that were created long ago. It is highly unlikely that I will search |
| 173 |
* my mail for that kind of stuff, so if a bug reported by mail isn't |
| 174 |
* fixed immediately, it will likely be forgotten forever. |
| 175 |
* |
| 176 |
* Copyright (C) 2005-2014 Sergey A. Tachenov and contributors |
| 177 |
**/ |