From 1acb84457ccc64501c7417d4524d522cce034c4b Mon Sep 17 00:00:00 2001 From: "Stephen R. Aylward" Date: Tue, 24 Nov 2015 09:36:49 -0500 Subject: [PATCH 1/3] BUG: Remove override, ensure gcc>4.6.3, and disable unique_ptr on apple --- CMakeLists.txt | 2 +- include/json/reader.h | 4 ++-- include/json/value.h | 4 ++-- include/json/writer.h | 12 ++++++------ src/lib_json/json_reader.cpp | 2 +- src/lib_json/json_writer.cpp | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 028970420..e02b8f335 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,7 +104,7 @@ endif() if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") # using regular Clang or AppleClang set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wno-sign-conversion") -elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND GNUCXX_VERSION VERSION_GREATER 4.6.3 ) # using GCC set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wextra") # not yet ready for -Wsign-conversion diff --git a/include/json/reader.h b/include/json/reader.h index 0a1574fad..a2d002e45 100644 --- a/include/json/reader.h +++ b/include/json/reader.h @@ -333,9 +333,9 @@ class JSON_API CharReaderBuilder : public CharReader::Factory { Json::Value settings_; CharReaderBuilder(); - ~CharReaderBuilder() override; + ~CharReaderBuilder(); - CharReader* newCharReader() const override; + CharReader* newCharReader() const; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. diff --git a/include/json/value.h b/include/json/value.h index 1cfda0774..d711da3f5 100644 --- a/include/json/value.h +++ b/include/json/value.h @@ -40,8 +40,8 @@ namespace Json { class JSON_API Exception : public std::exception { public: Exception(std::string const& msg); - ~Exception() throw() override; - char const* what() const throw() override; + ~Exception() throw(); + char const* what() const throw(); protected: std::string msg_; }; diff --git a/include/json/writer.h b/include/json/writer.h index f94aa1fe7..064b1b678 100644 --- a/include/json/writer.h +++ b/include/json/writer.h @@ -112,12 +112,12 @@ class JSON_API StreamWriterBuilder : public StreamWriter::Factory { Json::Value settings_; StreamWriterBuilder(); - ~StreamWriterBuilder() override; + ~StreamWriterBuilder(); /** * \throw std::exception if something goes wrong (e.g. invalid settings) */ - StreamWriter* newStreamWriter() const override; + StreamWriter* newStreamWriter() const; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. @@ -158,7 +158,7 @@ class JSON_API FastWriter : public Writer { public: FastWriter(); - ~FastWriter() override {} + ~FastWriter() {} void enableYAMLCompatibility(); @@ -172,7 +172,7 @@ class JSON_API FastWriter : public Writer { void omitEndingLineFeed(); public: // overridden from Writer - std::string write(const Value& root) override; + std::string write(const Value& root); private: void writeValue(const Value& value); @@ -210,14 +210,14 @@ class JSON_API FastWriter : public Writer { class JSON_API StyledWriter : public Writer { public: StyledWriter(); - ~StyledWriter() override {} + ~StyledWriter() {} public: // overridden from Writer /** \brief Serialize a Value in JSON format. * \param root Value to serialize. * \return String containing the JSON document that represents the root value. */ - std::string write(const Value& root) override; + std::string write(const Value& root); private: void writeValue(const Value& value); diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp index 2eae15de9..3149b0fa1 100644 --- a/src/lib_json/json_reader.cpp +++ b/src/lib_json/json_reader.cpp @@ -47,7 +47,7 @@ static int stackDepth_g = 0; // see readValue() namespace Json { -#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) +#if ( !defined(__APPLE__) && __cplusplus >= 201103L ) || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) typedef std::unique_ptr CharReaderPtr; #else typedef std::auto_ptr CharReaderPtr; diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index 0b2d7d5be..2ef2b022c 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -73,7 +73,7 @@ namespace Json { -#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) +#if ( !defined(__APPLE__) && __cplusplus >= 201103L ) || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) typedef std::unique_ptr StreamWriterPtr; #else typedef std::auto_ptr StreamWriterPtr; From 91a638bda2f109ab6f19e9d39aeead97aa800328 Mon Sep 17 00:00:00 2001 From: "Stephen R. Aylward" Date: Wed, 25 Nov 2015 08:52:07 -0500 Subject: [PATCH 2/3] BUG: Eliminate override test --- src/lib_json/json_reader.cpp | 2 +- src/lib_json/json_writer.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp index 3149b0fa1..8d1bd3fef 100644 --- a/src/lib_json/json_reader.cpp +++ b/src/lib_json/json_reader.cpp @@ -1901,7 +1901,7 @@ class OurCharReader : public CharReader { {} bool parse( char const* beginDoc, char const* endDoc, - Value* root, std::string* errs) override { + Value* root, std::string* errs) { bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_); if (errs) { *errs = reader_.getFormattedErrorMessages(); diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index 2ef2b022c..0d960b331 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -837,7 +837,7 @@ struct BuiltStyledStreamWriter : public StreamWriter std::string const& endingLineFeedSymbol, bool useSpecialFloats, unsigned int precision); - int write(Value const& root, std::ostream* sout) override; + int write(Value const& root, std::ostream* sout); private: void writeValue(Value const& value); void writeArrayValue(Value const& value); From 302c45316dcf74f4462ca6d87074b48cdfaf1ce9 Mon Sep 17 00:00:00 2001 From: "Stephen R. Aylward" Date: Sat, 28 Nov 2015 09:44:32 -0500 Subject: [PATCH 3/3] BUG: Specifying unix newlines regardless of how file is checked out --- CMakeLists.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e02b8f335..37f22289b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,11 +73,9 @@ jsoncpp_parse_version( ${JSONCPP_VERSION} JSONCPP_VERSION ) MESSAGE(STATUS "JsonCpp Version: ${JSONCPP_VERSION_MAJOR}.${JSONCPP_VERSION_MINOR}.${JSONCPP_VERSION_PATCH}") # File version.h is only regenerated on CMake configure step CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/src/lib_json/version.h.in" - "${PROJECT_SOURCE_DIR}/include/json/version.h" - NEWLINE_STYLE UNIX ) + "${PROJECT_SOURCE_DIR}/include/json/version.h" ) CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/version.in" - "${PROJECT_SOURCE_DIR}/version" - NEWLINE_STYLE UNIX ) + "${PROJECT_SOURCE_DIR}/version" ) macro(UseCompilationWarningAsError) if ( MSVC )