diff --git a/utils.cmake b/utils.cmake index c3a76de4..75410d27 100644 --- a/utils.cmake +++ b/utils.cmake @@ -6,20 +6,25 @@ include(CheckCXXCompilerFlag) # Uses: target_activate_cpp14(buildtarget) ################################################### function(target_activate_cpp14 TARGET) - check_cxx_compiler_flag("-std=c++14" COMPILER_HAS_CPP14_SUPPORT) - IF (COMPILER_HAS_CPP14_SUPPORT) - target_compile_options(${TARGET} PUBLIC -std=c++14) - ELSE() - check_cxx_compiler_flag("-std=c++1y" COMPILER_HAS_CPP14_PARTIAL_SUPPORT) - IF (COMPILER_HAS_CPP14_PARTIAL_SUPPORT) - target_compile_options(${TARGET} PUBLIC -std=c++1y) - ELSE() - message(FATAL_ERROR "Compiler doesn't support C++14") - ENDIF() - ENDIF() - IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - target_compile_options(${TARGET} PUBLIC -stdlib=libc++) - ENDIF() + if("${CMAKE_VERSION}" VERSION_GREATER "3.1") + set_property(TARGET ${TARGET} PROPERTY CXX_STANDARD 14) + set_property(TARGET ${TARGET} PROPERTY CXX_STANDARD_REQUIRED ON) + else("${CMAKE_VERSION}" VERSION_GREATER "3.1") + check_cxx_compiler_flag("-std=c++14" COMPILER_HAS_CPP14_SUPPORT) + if (COMPILER_HAS_CPP14_SUPPORT) + target_compile_options(${TARGET} PUBLIC -std=c++14) + else(COMPILER_HAS_CPP14_SUPPORT) + check_cxx_compiler_flag("-std=c++1y" COMPILER_HAS_CPP14_PARTIAL_SUPPORT) + if (COMPILER_HAS_CPP14_PARTIAL_SUPPORT) + target_compile_options(${TARGET} PUBLIC -std=c++1y) + else() + message(FATAL_ERROR "Compiler doesn't support C++14") + endif() + endif(COMPILER_HAS_CPP14_SUPPORT) + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_options(${TARGET} PUBLIC -stdlib=libc++) + endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + endif("${CMAKE_VERSION}" VERSION_GREATER "3.1") endfunction(target_activate_cpp14) #################################################