# HG changeset patch # User Sebastien Jodogne # Date 1459843900 -7200 # Node ID c1053112b323ee2e4d75ad6224d312dd3a52680c # Parent 40b7a0176305490688a5cc931128502100fdc2b3 Switch to the C++11 standard if the version of JsonCpp is 1.y.z diff -r 40b7a0176305 -r c1053112b323 Resources/CMake/JsonCppConfiguration.cmake --- a/Resources/CMake/JsonCppConfiguration.cmake Mon Apr 04 13:37:31 2016 +0200 +++ b/Resources/CMake/JsonCppConfiguration.cmake Tue Apr 05 10:11:40 2016 +0200 @@ -32,4 +32,25 @@ message(FATAL_ERROR "Please install the libjsoncpp-dev package") endif() + # Switch to the C++11 standard if the version of JsonCpp is 1.y.z + message(${JSONCPP_INCLUDE_DIR}/json/version.h) + if (EXISTS ${JSONCPP_INCLUDE_DIR}/json/version.h) + file(STRINGS + "${JSONCPP_INCLUDE_DIR}/json/version.h" + JSONCPP_VERSION_MAJOR1 REGEX + ".*JSONCPP_VERSION_MAJOR .*") + string(REGEX REPLACE + ".*JSONCPP_VERSION_MAJOR ([0-9]+)\\s*$" "\\1" + JSONCPP_VERSION_MAJOR ${JSONCPP_VERSION_MAJOR1}) + message("JsonCpp major version: ${JSONCPP_VERSION_MAJOR}") + + if (CMAKE_COMPILER_IS_GNUCXX AND + JSONCPP_VERSION_MAJOR GREATER 0) + message("Switching to C++11 standard, as version of JsonCpp is >= 1.0.0") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + endif() + else() + message("Unable to detect the major version of JsonCpp, assuming < 1.0.0") + endif() + endif()