diff --git a/.travis.yml b/.travis.yml index 8ce38cc8a2..68a16db552 100644 --- a/.travis.yml +++ b/.travis.yml @@ -277,6 +277,7 @@ script: if [[ (-x $(which brew)) ]]; then brew update brew install cmake ninja + brew upgrade cmake cmake --version fi diff --git a/CMakeLists.txt b/CMakeLists.txt index c0acc750b8..958a129fda 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0.0) +cmake_minimum_required(VERSION 3.8) ## ## PROJECT @@ -44,6 +44,8 @@ endif() ## add_library(${NLOHMANN_JSON_TARGET_NAME} INTERFACE) +target_compile_features(${NLOHMANN_JSON_TARGET_NAME} INTERFACE cxx_std_11) + target_include_directories( ${NLOHMANN_JSON_TARGET_NAME} INTERFACE diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index c10d44e964..a53812c10b 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1,9 +1,9 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.8) project(JSON_Benchmarks LANGUAGES CXX) # set compiler flags if((CMAKE_CXX_COMPILER_ID MATCHES GNU) OR (CMAKE_CXX_COMPILER_ID MATCHES Clang)) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -flto -DNDEBUG -O3") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -DNDEBUG -O3") endif() # configure Google Benchmarks @@ -23,4 +23,5 @@ file(COPY ${CMAKE_SOURCE_DIR}/../test/data/regression/floats.json # benchmark binary add_executable(json_benchmarks src/benchmarks.cpp) +target_compile_features(json_benchmarks PRIVATE cxx_std_11) target_link_libraries(json_benchmarks benchmark ${CMAKE_THREAD_LIBS_INIT}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e5f6dc55a4..c49150ad6e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,7 +6,7 @@ option(JSON_Coverage "Build test suite with coverage information" OFF) if(JSON_Sanitizer) message(STATUS "Building test suite with Clang sanitizer") if(NOT MSVC) - set(CMAKE_CXX_FLAGS "-std=c++11 -g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer") + set(CMAKE_CXX_FLAGS "-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer") endif() endif() @@ -62,11 +62,10 @@ add_library(catch_main OBJECT "src/unit.cpp" ) set_target_properties(catch_main PROPERTIES - CXX_STANDARD 11 - CXX_STANDARD_REQUIRED ON COMPILE_DEFINITIONS "$<$:_SCL_SECURE_NO_WARNINGS>" COMPILE_OPTIONS "$<$:/EHsc;$<$:/Od>>" ) +target_compile_features(catch_main PUBLIC cxx_std_11) target_include_directories(catch_main PRIVATE "thirdparty/catch") # https://stackoverflow.com/questions/2368811/how-to-set-warning-level-in-cmake @@ -96,13 +95,12 @@ foreach(file ${files}) add_executable(${testcase} $ ${file}) set_target_properties(${testcase} PROPERTIES - CXX_STANDARD 11 - CXX_STANDARD_REQUIRED ON COMPILE_DEFINITIONS "$<$:_SCL_SECURE_NO_WARNINGS>" COMPILE_OPTIONS "$<$:/EHsc;$<$:/Od>>" ) target_compile_definitions(${testcase} PRIVATE CATCH_CONFIG_FAST_COMPILE) + target_compile_features(${testcase} PRIVATE cxx_std_11) target_include_directories(${testcase} PRIVATE "thirdparty/catch") target_include_directories(${testcase} PRIVATE "thirdparty/fifo_map") target_include_directories(${testcase} PRIVATE ${NLOHMANN_JSON_INCLUDE_BUILD_DIR})