diff --git a/src/lib_json/CMakeLists.txt b/src/lib_json/CMakeLists.txt index 418044d..eeaa259 100644 --- a/src/lib_json/CMakeLists.txt +++ b/src/lib_json/CMakeLists.txt @@ -6,9 +6,15 @@ ELSE(JSONCPP_LIB_BUILD_SHARED) SET(JSONCPP_LIB_TYPE STATIC) ENDIF(JSONCPP_LIB_BUILD_SHARED) - if( CMAKE_COMPILER_IS_GNUCXX ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=strict-aliasing") + #Get compiler version. + execute_process( COMMAND ${CMAKE_CXX_COMPILER} -dumpversion + OUTPUT_VARIABLE GNUCXX_VERSION ) + + #-Werror=* was introduced -after- GCC 4.1.2 + if( GNUCXX_VERSION VERSION_GREATER 4.1.2 ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=strict-aliasing") + endif() endif( CMAKE_COMPILER_IS_GNUCXX ) SET( JSONCPP_INCLUDE_DIR ../../include ) diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index 8eb7dc5..12355f1 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -26,6 +26,11 @@ #pragma warning(disable : 4996) #endif +#if defined(__sun) && defined(__SVR4) //Solaris +#include +#define isfinite finite +#endif + namespace Json { static bool containsControlCharacter(const char* str) {