From ec7ffa20f2cc2beb94d7f086155f80df4b09bbdf Mon Sep 17 00:00:00 2001 From: Paulo Cabral Sanz Date: Sun, 26 Dec 2021 18:19:35 +0100 Subject: [PATCH] Avoid `Arduino.h` when all its features are disabled (fixes #1692) --- CHANGELOG.md | 2 ++ extras/tests/Helpers/Arduino.h | 2 ++ extras/tests/Misc/CMakeLists.txt | 1 + extras/tests/Misc/NoArduinoHeader.cpp | 20 +++++++++++++++++++ src/ArduinoJson/Configuration.hpp | 2 -- .../Readers/ArduinoStringReader.hpp | 2 ++ .../Deserialization/Readers/FlashReader.hpp | 2 ++ src/ArduinoJson/Polyfills/pgmspace.hpp | 2 ++ .../Polyfills/pgmspace_generic.hpp | 1 + .../Serialization/Writers/PrintWriter.hpp | 2 ++ 10 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 extras/tests/Misc/NoArduinoHeader.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index 1eeccc4b..23db7385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ HEAD * Fix inconsistent pool capacity between `BasicJsonDocument`'s copy and move assignments * Fix return type of `StaticJsonDocument::operator=` * Avoid pool reallocation in `BasicJsonDocument`'s copy assignment if capacity is the same +* Avoid including `Arduino.h` when all its features are disabled (issue #1692, PR #1693 by @paulocsanz) + v6.18.5 (2021-09-28) ------- diff --git a/extras/tests/Helpers/Arduino.h b/extras/tests/Helpers/Arduino.h index a3696222..656cae27 100644 --- a/extras/tests/Helpers/Arduino.h +++ b/extras/tests/Helpers/Arduino.h @@ -7,3 +7,5 @@ #include "api/Print.h" #include "api/Stream.h" #include "api/String.h" + +#define ARDUINO_H_INCLUDED 1 diff --git a/extras/tests/Misc/CMakeLists.txt b/extras/tests/Misc/CMakeLists.txt index 7aca704e..da5fbffe 100644 --- a/extras/tests/Misc/CMakeLists.txt +++ b/extras/tests/Misc/CMakeLists.txt @@ -8,6 +8,7 @@ add_executable(MiscTests deprecated.cpp FloatParts.cpp JsonString.cpp + NoArduinoHeader.cpp printable.cpp Readers.cpp StringAdapters.cpp diff --git a/extras/tests/Misc/NoArduinoHeader.cpp b/extras/tests/Misc/NoArduinoHeader.cpp new file mode 100644 index 00000000..fcaa21e0 --- /dev/null +++ b/extras/tests/Misc/NoArduinoHeader.cpp @@ -0,0 +1,20 @@ +// ArduinoJson - https://arduinojson.org +// Copyright Benoit Blanchon 2014-2021 +// MIT License + +#define ARDUINO 1 +#define ARDUINOJSON_ENABLE_PROGMEM 0 +#define ARDUINOJSON_ENABLE_ARDUINO_STRING 0 +#define ARDUINOJSON_ENABLE_ARDUINO_STREAM 0 +#define ARDUINOJSON_ENABLE_ARDUINO_PRINT 0 +#include + +#include + +TEST_CASE("Arduino.h") { +#ifdef ARDUINO_H_INCLUDED + FAIL("Arduino.h should not be included"); +#else + INFO("Arduino.h not included"); +#endif +} diff --git a/src/ArduinoJson/Configuration.hpp b/src/ArduinoJson/Configuration.hpp index e9612f66..9befbcad 100644 --- a/src/ArduinoJson/Configuration.hpp +++ b/src/ArduinoJson/Configuration.hpp @@ -116,8 +116,6 @@ #ifdef ARDUINO -# include - // Enable support for Arduino's String class # ifndef ARDUINOJSON_ENABLE_ARDUINO_STRING # define ARDUINOJSON_ENABLE_ARDUINO_STRING 1 diff --git a/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp b/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp index 71571d41..14c93733 100644 --- a/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp @@ -4,6 +4,8 @@ #pragma once +#include + namespace ARDUINOJSON_NAMESPACE { template diff --git a/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp b/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp index 7eca134d..bac8753e 100644 --- a/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp @@ -4,6 +4,8 @@ #pragma once +#include + namespace ARDUINOJSON_NAMESPACE { template <> diff --git a/src/ArduinoJson/Polyfills/pgmspace.hpp b/src/ArduinoJson/Polyfills/pgmspace.hpp index c9107384..b4c56fce 100644 --- a/src/ArduinoJson/Polyfills/pgmspace.hpp +++ b/src/ArduinoJson/Polyfills/pgmspace.hpp @@ -4,6 +4,8 @@ #pragma once +#include + #include #include #include diff --git a/src/ArduinoJson/Polyfills/pgmspace_generic.hpp b/src/ArduinoJson/Polyfills/pgmspace_generic.hpp index f5bbd85e..070d574f 100644 --- a/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +++ b/src/ArduinoJson/Polyfills/pgmspace_generic.hpp @@ -5,6 +5,7 @@ #pragma once #include +#include #include namespace ARDUINOJSON_NAMESPACE { diff --git a/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp b/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp index 13a64912..41f17924 100644 --- a/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +++ b/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp @@ -4,6 +4,8 @@ #pragma once +#include + namespace ARDUINOJSON_NAMESPACE { template