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