OSDN Git Service

Fixed some typos + moved "main" page to a separate .dox file.
[mutilities/MUtilities.git] / include / MUtilsInfo.dox
1 /**
2  * @mainpage
3  *
4  * # Introduction #
5  * 
6  * The **MUtilities** library is a collection of routines and classes to extend the [*Qt cross-platform framework*](http://qt-project.org/). It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the [**LameXP**](http://lamexp.sourceforge.net/) application: Over the years, a lot of code, **not** really specific to *LameXP*, had accumulated in the *LameXP* code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion – which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the **MUtilities** (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of *LameXP* and [*other OpenSource projects*](https://github.com/lordmulder).
7  * 
8  * 
9  * # Project Structure
10  * 
11  * The *MUtilities* project directory is organized as follows:
12  * 
13  * - `bin/` – compiled library files (static or shared), link those files in projects that use the MUtilities library
14  * - `docs/` – programming interface documentation, generated with Doxygen tool
15  * - `etc/` – miscellaneous files, everything that doesn't fit in anywhere else
16  * - `include/` – public header files, include this directory in projects that use the MUtilities library
17  * - `obj/` – object code files, intermediate files generated during the build process
18  * - `res/` – resource files, required for building the MUtilities library
19  * - `src/` – source code files, required for building the MUtilities library (third-party code in `src/3rd_party/`)
20  * - `test/` – unit tests, based on Google Test framework
21  * - `tmp/` – temporary files, automatically generated during the build process
22  * 
23  * 
24  * # API Documentation
25  * 
26  * The public API of the *MUtilities* library is defined in the following header files (select file for details):
27  * - **Global.h** – miscellaneous useful functions
28  * 
29  * 
30  * # Example
31  * 
32  * Here is a minimal example on how to use the *MUtilities* library in your project:
33  * 
34  *     //MUtils
35  *     #include <MUtils/Global.h>
36  *     
37  *     int main(int argc, char **argv)
38  *     {
39  *         qDebug("Random number: %u\n", MUtils::next_rand_u32());
40  *     }
41  * 
42  * ## Build Notes
43  * 
44  * - In order to use the *MUtilities* library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is *not* covered by this document.
45  * - Additionally, make sure that *MUtilities'* `include/` directory is contained in your "Additional Include Directories" and that the *MUtilities'* `bin/` directory is contained in your "Additional Library Directories".
46  * - Finally, make sure that your project links against the `MUtils32-1.lib` library file. For each build configuration, pick the proper **.lib** file from the corresponding `bin/<platform>/<config>/` directory!
47  * - If your projects intends to use the *MUtilities* library as a **static** library, then the macro `MUTILS_STATIC_LIB` *must* be added to your project's "Preprocessor Definitions".
48  * 
49  * 
50  * # License
51  * 
52  * This library is free software. It is released under the terms of the [*GNU Lesser General Public License (LGPL), Version 2.1*](https://www.gnu.org/licenses/lgpl-2.1.html).
53  * 
54  *     MUtilities - MuldeR's Utilities for Qt
55  *     Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.
56  *     
57  *     This library is free software; you can redistribute it and/or
58  *     modify it under the terms of the GNU Lesser General Public
59  *     License as published by the Free Software Foundation; either
60  *     version 2.1 of the License, or (at your option) any later version.
61  *     
62  *     This library is distributed in the hope that it will be useful,
63  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
64  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
65  *     Lesser General Public License for more details.
66  *     
67  *     You should have received a copy of the GNU Lesser General Public
68  *     License along with this library; if not, write to the Free Software
69  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
70  * 
71  * 
72  * # Acknowledgement
73  * 
74  * The following third-party code is used in the MUtilities library:
75  * 
76  * - **Keccak/SHA-3 Reference Implementation**  
77  *   Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, Joan Daemen, MichaĆ«l Peeters, Gilles Van Assche and Ronny Van Keer  
78  *   No Copyright / Dedicated to the Public Domain
79  * 
80  * - **Natural Order String Comparison**  
81  *   Copyright (C) 2000, 2004 by Martin Pool <mbp@sourcefrog.net>  
82  *   Released under the zlib License
83  * 
84  * - **Adler-32 Checksum Algorithm (from zlib)**  
85  *   Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler  
86  *   Released under the zlib License
87  */