Initial commit.

This commit is contained in:
Jonas Kvinge
2018-02-27 18:06:05 +01:00
parent 85d9664df7
commit b2b1ba7abe
1393 changed files with 177311 additions and 1 deletions

107
3rdparty/qjson/README.md vendored Normal file
View File

@@ -0,0 +1,107 @@
# QJson [![Build Status](https://travis-ci.org/flavio/qjson.svg?branch=master)](https://travis-ci.org/flavio/qjson)
JSON (JavaScript Object Notation) is a lightweight data-interchange format.
It can represents integer, real number, string, an ordered sequence of value, and a collection of name/value pairs.
QJson is a qt-based library that maps JSON data to QVariant objects.
JSON arrays will be mapped to QVariantList instances, while JSON's objects will be mapped to QVariantMap.
# Install
QJson requires:
- Qt 4.5 or greater
- cmake 2.6 or greater
Some possible cmake options:
- `-DCMAKE_BUILD_TYPE=DEBUG`: enables some debug output (other than making
easier to debug the code)
- `-DQJSON_BUILD_TESTS=yes` or `-DKDE4_BUILD_TESTS=yes`: builds the unit tests
- `-DCMAKE_INSTALL_PREFIX=${HOME}/testinstall`: install qjson in a custom directory
- `-DCMAKE_INCLUDE_PATH=${HOME}/testinstall/include`: include a custom include directory
- `-DCMAKE_LIBRARY_PATH=${HOME}/testinstall/lib`: include a custom library directory
- `-DLIB_DESTINATION=lib64`: if you have a 64 bit system with separate
libraries for 64 bit libraries
- `-DQJSON_VERBOSE_DEBUG_OUTPUT:BOOL=ON`: more debugging statements are
generated by the parser. It's useful only if you are trying to fix
the bison grammar.
For Unix/Linux/Mac:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ ..
make
make install
/sbin/ldconfig #if necessary
# Contribute
The recommended way to submit your changes is via a pull request.
Before submitting a patch please ensure:
* Patched code compiles.
* The patch is fixing a specific issue or implementing a new feature
(its not doing multiple things at the same time).
* QJson unit tests have been updated.
* QJson unit tests are passing.
## Unit testing
QJson unit tests are located under the `tests` directory. You can enable them
passing the `-DQJSON_BUILD_TESTS=yes` option to `cmake`.
> Note well: make sure you followed the build instructions.
To run all the unit tests move into the build directory and type:
```
make tests
```
If you want to run the `QJson::Parser` unit tests just type:
```
./test/parser/testparser
```
If you want to run the `QJson::Serializer` unit tests just type:
```
./test/serializer/testserializer
```
If you want to run the `QJson::QObjectHelper` tests just type:
```
./tests/qobjecthelper/testqobjecthelper
```
If you want to test the QJson parser against a specific JSON object you can
use the `cmdline_tester` program.
This binary is located under the `tests` directory and has a
straightforward syntax:
```
./tests/cmdline_tester/cmdline_tester text_file_containing_json_object
```
The command will convert the JSON object to a `QVariant` and dump it to stdout.
More options are available via cli options, just checkout the `--help` output.
**Note well:** cmdline_tester relies on `qDebug()` to dump the object. `qDebug`
has some limitations, like being unable to print utf8 chars.
# License
This library is licensed under the Lesser GNU General Public License version 2.1.
See the COPYING.lib file for more information.
# Resources
* [Website](http://qjson.sourceforge.net/)
* [Mailing List](https://lists.sourceforge.net/mailman/listinfo/qjson-devel)
* Project Lead/Maintainer (2008-current): [Flavio Castelli](mailto:flavio@castelli.name).