metaforce/hecl-gui/quazip/quazip/doc/index.dox

178 lines
7.1 KiB
Plaintext
Raw Normal View History

/**
* \mainpage QuaZIP - Qt/C++ wrapper for ZIP/UNZIP package
*
\htmlonly
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=142688&amp;type=7" style="width:210; height:62; border:none; float:right;" alt="Powered by SourceForge.net" /></a>
\endhtmlonly
* \section overview Overview
*
* QuaZIP is a simple C++ wrapper over <a
* href="http://www.winimage.com/zLibDll/minizip.html">Gilles Vollant's ZIP/UNZIP
* package</a> that can be used to access ZIP archives. It uses <a
* href="http://qt.digia.com/">the Qt toolkit</a>.
*
* 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 <a
* href="http://qt-project.org/doc/">official Qt documentation</a>
*
* 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 <a
* href="http://sourceforge.net/projects/quazip/">QuaZIP project's page
* at SourceForge.net</a>.
*
* \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 <a href="http://www.zlib.org/">zlib</a> 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 <a
* href="http://sourceforge.net/tracker/?group_id=142688">trackers</a>.
* 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
**/