/** * \mainpage QuaZIP - Qt/C++ wrapper for ZIP/UNZIP package * \htmlonly Powered by SourceForge.net \endhtmlonly * \section overview Overview * * QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP * package that can be used to access ZIP archives. It uses the Qt toolkit. * * If you do not know what Qt is, you have two options: * - Just forget about QuaZIP. * - Learn more about Qt by downloading it and/or reading the excellent official Qt documentation * * 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 ^_^ * * QuaZIP allows you to access files inside ZIP archives using QIODevice * API, and - yes! - that means that you can also use QTextStream, * QDataStream or whatever you would like to use on your zipped files. * * QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both * reading from and writing to ZIP archives. * * \section download Download QuaZIP * * Downloads are available from QuaZIP project's page * at SourceForge.net. * * \section platforms Platforms supported * * QuaZIP has been currently tested on the following platforms: * - linux-g++ (Ubuntu 11.10, Qt 4.7.4) * - freebsd-g++ (Qt 4.0.0 * - hpux-acc (HP-UX 11.11) * - hpux-g++ (HP-UX 11.11) * - win32-g++ (MinGW) * - win32-msvc2010 (MS VS 2010 Express, Qt 4.8.4) * - win32-msvc2010 (Qt Creator, Qt 5.0.1) * - win32-msvc2012 (Qt Creator, Qt 5.2.0) * - some Symbian version, reportedly * * 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 whats-new What is new in this version of QuaZIP? * * See the NEWS.txt file supplied with the distribution. * * \section Requirements * * Just zlib and Qt 4/5. Well, 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 Building, testing and installing * * \note 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. * * To build the library, run: \verbatim $ cd /wherever/quazip/source/is/quazip-x.y.z/quazip $ qmake [PREFIX=where-to-install] $ make \endverbatim * * Make sure that you have 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 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). * * To reconfigure (with another PREFIX, for example), just run qmake * with appropriate arguments again. * * If you need to specify additional include path or libraries, use * qmake features (see qmake reference in the Qt documentation). For * example: * \verbatim $ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include \endverbatim * (note abscence of "-I" before the include path and the presence of "-L" * before the lib path) * * 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). * * To install compiled library: \verbatim $ make install \endverbatim * * By default, QuaZIP compiles as a DLL/SO, but you have other * options: * - 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. * - Compile it as a static library using CONFIG += staticlib qmake * option. QUAZIP_STATIC is defined automatically by qmake in this case. * * 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 test Testing * * To check if QuaZIP's basic features work OK on your platform, you may * wish to compile the test suite provided in test directory: \verbatim $ cd /wherever/quazip/source/is/quazip-x.y.z/qztest $ qmake $ make $ ./qztest \endverbatim * * Note that the test suite looks for the quazip library in the "quazip" * folder of the project ("../quazip"), but you may wish to use LIBS * for some systems (Windows often puts the library in the separate * "debug" or "release" directory). If you wish to use the quazip * version that's already installed, provide the appropriate path. * * On some systems you may need to set PATH, LD_LIBRARY_PATH or * SHLIB_PATH to get "qztest" to actually run. * * 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 Using * * See \ref usage "usage page". * * \section contacts Authors and contacts * * 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. * * If you have anything to say to me about QuaZIP library, feel free to * do so (read the \ref 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...). * * To report bugs or to post ideas about what should be done, use * SourceForge.net's trackers. * If you want to send me a private message, use my e-mail address * stachenov@gmail.com. * * 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. * * Copyright (C) 2005-2014 Sergey A. Tachenov and contributors **/