Skip to content

Commit

Permalink
Allowed automerge
Browse files Browse the repository at this point in the history
  • Loading branch information
Teemperor committed Jan 10, 2015
2 parents 1287f03 + 0cd2ecf commit 6105ce5
Show file tree
Hide file tree
Showing 5 changed files with 2,732 additions and 6 deletions.
16 changes: 13 additions & 3 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
.PHONY: header_only

# the order is important: header before other sources
CORE_SOURCES = src/json.h src/json.cc

noinst_PROGRAMS = json_unit json_parser

FLAGS = -Wall -Wextra -pedantic -Weffc++ -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-declarations -Wmissing-include-dirs -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-overflow=5 -Wswitch -Wundef -Wno-unused -Wnon-virtual-dtor -Wreorder

json_unit_SOURCES = src/json.cc src/json.h test/catch.hpp test/json_unit.cc
json_unit_SOURCES = $(CORE_SOURCES) test/catch.hpp test/json_unit.cc
json_unit_CXXFLAGS = $(FLAGS) -std=c++11
json_unit_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/test -Dprivate=public

json_parser_SOURCES = src/json.cc src/json.h benchmark/parse.cc
json_parser_SOURCES = $(CORE_SOURCES) benchmark/parse.cc
json_parser_CXXFLAGS = -O3 -std=c++11 -flto
json_parser_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/benchmark

Expand All @@ -26,4 +31,9 @@ pretty:
$(SOURCES)

parser:
make CXXFLAGS="" json_parser
make CXXFLAGS="" json_parser

header_only/json.h: $(CORE_SOURCES)
cat $(CORE_SOURCES) | $(SED) 's/#include "json.h"//' > header_only/json.h

BUILT_SOURCES = header_only/json.h
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Other aspects were not so important to us:

## Integration

All you need to do is add
The two required source files are in the `src` directory. All you need to do is add

```cpp
#include "json.h"
Expand All @@ -37,6 +37,8 @@ using json = nlohmann::json;

to the files you want to use JSON objects. Furthermore, you need to compile the file `json.cc` and link it to your binaries. Do not forget to set the necessary switches to enable C++11 (e.g., `-std=c++11` for GCC and Clang).

If you want a single header file, use the `json.h` file from the `header_only` directory.

## Examples

Here are some examples to give you an idea how to use the class.
Expand Down Expand Up @@ -254,6 +256,16 @@ The above copyright notice and this permission notice shall be included in all c

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

## Thanks

I deeply appreciate the help of the following people.

- [Teemperor](https://github.com/Teemperor) implemented CMake support and lcov integration and realized escape handling in the string parser.
- [elliotgoodrich](https://github.com/elliotgoodrich) fixed an issue with double deletion in the iterator classes.
- [kirkshoop](https://github.com/kirkshoop) made the iterators of the class composable to other libraries.

Thanks a lot for helping out!

## Execute unit tests with CMake

To compile and run the tests, you need to execute
Expand Down Expand Up @@ -289,7 +301,7 @@ The unit tests can then be executed with
$ ./json_unit

===============================================================================
All tests passed (863 assertions in 10 test cases)
All tests passed (887 assertions in 10 test cases)
```

For more information, have a look at the file [.travis.yml](https://github.com/nlohmann/json/blob/master/.travis.yml).
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ AM_INIT_AUTOMAKE([foreign subdir-objects])
AM_SILENT_RULES([yes])

AC_PROG_CXX
AC_PROG_SED

AC_CONFIG_FILES(Makefile)
AC_OUTPUT
Loading

0 comments on commit 6105ce5

Please sign in to comment.