From a1943e21ed060c9d3196fcf30bb6334e29330058 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Thu, 27 Aug 2015 21:47:49 +0200 Subject: [PATCH] Fixed compilation on Visual Studio 2010 and 2012 (issue #107) --- CHANGELOG.md | 1 + README.md | 2 +- src/Arduino/Print.cpp | 7 +++++++ test/CMakeLists.txt | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d0aa3f6..2ad1c835 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ v5.0.2 ------ * Fixed Clang warning "register specifier is deprecated" (issue #102) +* Fixed compilation on Visual Studio 2010 and 2012 (issue #107) v5.0.1 ------ diff --git a/README.md b/README.md index b30b111d..09362897 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Arduino JSON library ==================== -[![Build Status](https://travis-ci.org/bblanchon/ArduinoJson.svg?branch=master)](https://travis-ci.org/bblanchon/ArduinoJson) [![Coverage Status](https://img.shields.io/coveralls/bblanchon/ArduinoJson.svg)](https://coveralls.io/r/bblanchon/ArduinoJson?branch=master) +[![Build status](https://ci.appveyor.com/api/projects/status/m7s53wav1l0abssg/branch/master?svg=true)](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/master) [![Build Status](https://travis-ci.org/bblanchon/ArduinoJson.svg?branch=master)](https://travis-ci.org/bblanchon/ArduinoJson) [![Coverage Status](https://img.shields.io/coveralls/bblanchon/ArduinoJson.svg)](https://coveralls.io/r/bblanchon/ArduinoJson?branch=master) *An elegant and efficient JSON library for embedded systems.* diff --git a/src/Arduino/Print.cpp b/src/Arduino/Print.cpp index afcea126..5b443ac0 100644 --- a/src/Arduino/Print.cpp +++ b/src/Arduino/Print.cpp @@ -17,6 +17,13 @@ #pragma GCC diagnostic ignored "-Wfloat-conversion" #endif +// Visual Studo 2012 didn't have isnan, nor isinf +#if defined(_MSC_VER) && _MSC_VER <= 1700 +#include +#define isnan(x) _isnan(x) +#define isinf(x) (!_finite(x)) +#endif + size_t Print::print(const char s[]) { size_t n = 0; while (*s) { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c66a796e..c09910e4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,6 +10,11 @@ include_directories( add_definitions(-DGTEST_HAS_PTHREAD=0) +# Workaround for Visual Studio 2012 +if (MSVC AND MSVC_VERSION EQUAL 1700) + add_definitions(-D_VARIADIC_MAX=10) +endif() + add_executable(ArduinoJsonTests ${TESTS_FILES} ${INC_FILES}