| SRCDIR = ../single_include |
| SED:=$(shell command -v gsed || which sed) |
| |
| all: doxygen |
| |
| |
| ########################################################################## |
| # example files |
| ########################################################################## |
| |
| # where are the example cpp files |
| EXAMPLES = $(wildcard examples/*.cpp) |
| |
| # create output from a stand-alone example file |
| %.output: %.cpp |
| make $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11" |
| ./$(<:.cpp=) > $@ |
| rm $(<:.cpp=) |
| |
| # compare created output with current output of the example files |
| %.test: %.cpp |
| make $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11" |
| ./$(<:.cpp=) > $@ |
| diff $@ $(<:.cpp=.output) |
| rm $(<:.cpp=) $@ |
| |
| # create links to try the code online |
| %.link: %.cpp |
| rm -fr tmp |
| mkdir tmp |
| cp -r $(SRCDIR)/nlohmann tmp |
| python2 scripts/send_to_wandbox.py tmp $< > $@.tmp |
| /bin/echo -n "<a target=\"_blank\" href=\"`cat $@.tmp`\"><b>online</b></a>" > $@ |
| rm -fr tmp $@.tmp |
| |
| # create output from all stand-alone example files |
| create_output: $(EXAMPLES:.cpp=.output) |
| |
| create_links: $(EXAMPLES:.cpp=.link) |
| |
| # check output of all stand-alone example files |
| check_output: $(EXAMPLES:.cpp=.test) |
| |
| |
| clean: |
| rm -fr me.nlohmann.json.docset html xml $(EXAMPLES:.cpp=) |
| $(MAKE) clean -C docset |
| $(MAKE) clean -C mkdocs |
| |
| |
| ########################################################################## |
| # Doxygen HTML documentation |
| ########################################################################## |
| |
| # create Doxygen documentation |
| doxygen: create_output create_links |
| doxygen |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType, JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer>@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer >@@g' html/*.html |
| $(SED) -i 's@JSON_HEDLEY_RETURNS_NON_NULL@@g' html/*.html |
| $(SED) -i 's@JSON_HEDLEY_WARN_UNUSED_RESULT@@g' html/*.html |
| |
| upload: clean doxygen check_output |
| scripts/git-update-ghpages nlohmann/json html |
| rm -fr html |
| open http://nlohmann.github.io/json/ |
| |
| |
| ########################################################################## |
| # docset |
| ########################################################################## |
| |
| # create docset for Dash |
| docset: create_output |
| cp Doxyfile Doxyfile_docset |
| $(SED) -i 's/DISABLE_INDEX = NO/DISABLE_INDEX = YES/' Doxyfile_docset |
| $(SED) -i 's/SEARCHENGINE = YES/SEARCHENGINE = NO/' Doxyfile_docset |
| $(SED) -i 's@HTML_EXTRA_STYLESHEET = css/mylayout.css@HTML_EXTRA_STYLESHEET = css/mylayout_docset.css@' Doxyfile_docset |
| rm -fr html *.docset |
| doxygen Doxyfile_docset |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html |
| $(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html |
| make -C html |
| mv html/*.docset . |
| $(SED) -i 's@<string>doxygen</string>@<string>json</string>@' me.nlohmann.json.docset/Contents/Info.plist |
| rm -fr Doxyfile_docset html |