diff --git a/.gitignore b/.gitignore index ea92772c..9aacce92 100644 --- a/.gitignore +++ b/.gitignore @@ -1,51 +1,2 @@ -.DS_Store -src/.DS_Store - -aclocal.m4 - -autom4te.cache/* - -config.log - -config.status - -configure - -depcomp - -html - -*.o - -*.Po - -install-sh - -json_unit - -Makefile - -missing - -.dirstamp - -test-driver - -Makefile.in - -*.plist - -json_parser - -CMakeCache.txt - -*.cmake - -CMakeFiles - -libjson.a - -Testing - -.idea +.deps utf8_test diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..4353eb30 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +# used programs +RE2C = re2c +SED = gsed + +# additional flags +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 + +all: json_unit + +# clean up +clean: + rm -f json_unit + +# build unit tests +json_unit: test/unit.cpp src/json.hpp test/catch.hpp + $(CXX) -std=c++11 $(CXXFLAGS) $(FLAGS) $(CPPFLAGS) -I src -I test -Dprivate=public $< $(LDFLAGS) -o $@ + +# create scanner with re2c +re2c: src/json.hpp.re2c + $(RE2C) -b -s -i --no-generation-date $< | $(SED) '1d' > src/json.hpp + +# static analyser +cppcheck: + cppcheck --enable=all --inconclusive --std=c++11 src/json.hpp + +# pretty printer +pretty: + astyle --style=allman --indent=spaces=4 --indent-modifiers \ + --indent-switches --indent-preproc-block --indent-preproc-define \ + --indent-col1-comments --pad-oper --pad-header --align-pointer=type \ + --align-reference=type --add-brackets --convert-tabs --close-templates \ + --lineend=linux --preserve-date --suffix=none \ + src/json.hpp src/json.hpp.re2c test/unit.cpp