comparison OrthancFramework/Resources/CMake/DownloadOrthancFramework.cmake @ 4842:044573b90881

stop forcing C++11 in CMake
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 07 Dec 2021 12:34:17 +0100
parents 7053502fbf97
children 55e8fb8e8028
comparison
equal deleted inserted replaced
4841:060b9a789202 4842:044573b90881
499 CHECK_INCLUDE_FILE_CXX(${JSONCPP_INCLUDE_DIR}/json/reader.h HAVE_JSONCPP_H) 499 CHECK_INCLUDE_FILE_CXX(${JSONCPP_INCLUDE_DIR}/json/reader.h HAVE_JSONCPP_H)
500 if (NOT HAVE_JSONCPP_H) 500 if (NOT HAVE_JSONCPP_H)
501 message(FATAL_ERROR "Please install the libjsoncpp-dev package") 501 message(FATAL_ERROR "Please install the libjsoncpp-dev package")
502 endif() 502 endif()
503 503
504 # Switch to the C++11 standard if the version of JsonCpp is 1.y.z
505 # (same as variable JSONCPP_CXX11 in the source code of Orthanc)
506 if (EXISTS ${JSONCPP_INCLUDE_DIR}/json/version.h)
507 file(STRINGS
508 "${JSONCPP_INCLUDE_DIR}/json/version.h"
509 JSONCPP_VERSION_MAJOR1 REGEX
510 ".*define JSONCPP_VERSION_MAJOR.*")
511
512 if (NOT JSONCPP_VERSION_MAJOR1)
513 message(FATAL_ERROR "Unable to extract the major version of JsonCpp")
514 endif()
515
516 string(REGEX REPLACE
517 ".*JSONCPP_VERSION_MAJOR.*([0-9]+)$" "\\1"
518 JSONCPP_VERSION_MAJOR ${JSONCPP_VERSION_MAJOR1})
519 message("JsonCpp major version: ${JSONCPP_VERSION_MAJOR}")
520
521 if (JSONCPP_VERSION_MAJOR GREATER 0)
522 message("Switching to C++11 standard, as version of JsonCpp is >= 1.0.0")
523 if (CMAKE_COMPILER_IS_GNUCXX)
524 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
525 elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
526 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
527 endif()
528 endif()
529 else()
530 message("Unable to detect the major version of JsonCpp, assuming < 1.0.0")
531 endif()
532
533 # Look for Orthanc framework shared library 504 # Look for Orthanc framework shared library
534 include(CheckCXXSymbolExists) 505 include(CheckCXXSymbolExists)
535 506
536 if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") 507 if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
537 set(ORTHANC_FRAMEWORK_INCLUDE_DIR ${ORTHANC_FRAMEWORK_ROOT}) 508 set(ORTHANC_FRAMEWORK_INCLUDE_DIR ${ORTHANC_FRAMEWORK_ROOT})