Added a script to build a single file distribution

This commit is contained in:
Benoit Blanchon
2017-03-25 21:56:37 +01:00
parent 185eccf6f5
commit ad972725de
9 changed files with 67 additions and 18 deletions

View File

@ -82,7 +82,7 @@ root.printTo(Serial);
Documentation Documentation
------------- -------------
The documentation is available online in the [ArduinoJson wiki](https://github.com/bblanchon/ArduinoJson/wiki). The documentation is available online in the [ArduinoJson Website](https://github.com/bblanchon/ArduinoJson/).
The [ArduinoJson Assistant](https://bblanchon.github.io/ArduinoJson/assistant/) helps you get started with the library. The [ArduinoJson Assistant](https://bblanchon.github.io/ArduinoJson/assistant/) helps you get started with the library.

View File

@ -5,5 +5,8 @@
// https://github.com/bblanchon/ArduinoJson // https://github.com/bblanchon/ArduinoJson
// If you like this project, please add a star! // If you like this project, please add a star!
#pragma once
#include "ArduinoJson.hpp" #include "ArduinoJson.hpp"
using namespace ArduinoJson; using namespace ArduinoJson;

View File

@ -19,5 +19,3 @@
#include "ArduinoJson/JsonObjectImpl.hpp" #include "ArduinoJson/JsonObjectImpl.hpp"
#include "ArduinoJson/JsonVariantImpl.hpp" #include "ArduinoJson/JsonVariantImpl.hpp"
#include "ArduinoJson/Serialization/JsonSerializerImpl.hpp" #include "ArduinoJson/Serialization/JsonSerializerImpl.hpp"
using namespace ArduinoJson;

View File

@ -7,6 +7,8 @@
#pragma once #pragma once
#if ARDUINOJSON_ENABLE_ARDUINO_STREAM
#include <Stream.h> #include <Stream.h>
#include "../TypeTraits/EnableIf.hpp" #include "../TypeTraits/EnableIf.hpp"
@ -59,3 +61,5 @@ struct StringTraits<TStream,
: ArduinoStreamTraits {}; : ArduinoStreamTraits {};
} }
} }
#endif

View File

@ -7,6 +7,8 @@
#pragma once #pragma once
#if ARDUINOJSON_ENABLE_PROGMEM
namespace ArduinoJson { namespace ArduinoJson {
namespace Internals { namespace Internals {
template <> template <>
@ -50,3 +52,5 @@ struct StringTraits<const __FlashStringHelper*, void> {
}; };
} }
} }
#endif

View File

@ -7,6 +7,8 @@
#pragma once #pragma once
#if ARDUINOJSON_ENABLE_STD_STREAM
#include <istream> #include <istream>
#include "../TypeTraits/EnableIf.hpp" #include "../TypeTraits/EnableIf.hpp"
#include "../TypeTraits/IsBaseOf.hpp" #include "../TypeTraits/IsBaseOf.hpp"
@ -57,3 +59,5 @@ struct StringTraits<TStream,
: StdStreamTraits {}; : StdStreamTraits {};
} }
} }
#endif

View File

@ -7,6 +7,8 @@
#pragma once #pragma once
#if ARDUINOJSON_ENABLE_STD_STRING || ARDUINOJSON_ENABLE_ARDUINO_STRING
#if ARDUINOJSON_ENABLE_ARDUINO_STRING #if ARDUINOJSON_ENABLE_ARDUINO_STRING
#include <WString.h> #include <WString.h>
#endif #endif
@ -60,3 +62,5 @@ struct StringTraits<std::string, void> : StdStringTraits<std::string> {};
#endif #endif
} }
} }
#endif

View File

@ -23,23 +23,11 @@ struct StringTraits<TString&, void> : StringTraits<TString> {};
} }
} }
#include "CharPointer.hpp"
#if ARDUINOJSON_ENABLE_STD_STRING || ARDUINOJSON_ENABLE_ARDUINO_STRING
#include "StdString.hpp"
#endif
#if ARDUINOJSON_ENABLE_STD_STREAM
#include "StdStream.hpp"
#endif
#if ARDUINOJSON_ENABLE_ARDUINO_STREAM
#include "ArduinoStream.hpp" #include "ArduinoStream.hpp"
#endif #include "CharPointer.hpp"
#if ARDUINOJSON_ENABLE_PROGMEM
#include "FlashString.hpp" #include "FlashString.hpp"
#endif #include "StdStream.hpp"
#include "StdString.hpp"
namespace ArduinoJson { namespace ArduinoJson {
namespace TypeTraits { namespace TypeTraits {

View File

@ -0,0 +1,44 @@
#!/bin/bash
TAG=$(git describe)
RE_INCLUDE='^#include[[:space:]]*["<](.*)[">]'
RE_EMPTY='^(#pragma[[:space:]]+once)?[[:space:]]*(//.*)?$'
declare -A INCLUDED
process()
{
local PARENT=$1
local FOLDER=$(dirname $1)
local SHOW_COMMENT=$2
while IFS= read -r LINE; do
if [[ $LINE =~ $RE_INCLUDE ]]; then
local CHILD=${BASH_REMATCH[1]}
pushd "$FOLDER" > /dev/null
if [[ -e $CHILD ]]; then
local CHILD_PATH=$(realpath $CHILD)
if [[ ! ${INCLUDED[$CHILD_PATH]} ]]; then
#echo "// $PARENT -> $CHILD"
INCLUDED[$CHILD_PATH]=true
process "$CHILD" false
fi
else
if [[ ! ${INCLUDED[$CHILD]} ]]; then
echo "$LINE"
INCLUDED[$CHILD]=true
fi
fi
popd > /dev/null
elif [[ "${SHOW_COMMENT}" = "true" ]] ; then
echo "$LINE"
elif [[ ! $LINE =~ $RE_EMPTY ]]; then
echo "$LINE"
fi
done < $PARENT
}
cd $(dirname $0)/../
INCLUDED=()
process include/ArduinoJson.h true > ../ArduinoJson-$TAG.h
INCLUDED=()
process include/ArduinoJson.hpp true > ../ArduinoJson-$TAG.hpp