From 77dd40c96ccbdf65d511e3aefa209d78bb89caf2 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Thu, 20 Feb 2020 14:18:43 +0300 Subject: [PATCH] Merge pull request #16619 from alalek:cmake_custom_cxx_standard_master * cmake: allow customization of CMAKE_CXX_STANDARD value * cmake: extra skip flag OPENCV_SKIP_CMAKE_CXX_STANDARD * cmake: dump CMAKE_CXX_STANDARD value - compiler option is missing in dumped flags --- CMakeLists.txt | 3 +++ cmake/OpenCVDetectCXXCompiler.cmake | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 69a130169a..a967c56c00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1049,6 +1049,9 @@ string(STRIP "${OPENCV_COMPILER_STR}" OPENCV_COMPILER_STR) status("") status(" C/C++:") status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO) +if(DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD) + status(" C++ standard:" "${CMAKE_CXX_STANDARD}") +endif() status(" C++ Compiler:" ${OPENCV_COMPILER_STR}) status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}) status(" C++ flags (Debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}) diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake index 6690bcc1ec..cea12ad9c3 100644 --- a/cmake/OpenCVDetectCXXCompiler.cmake +++ b/cmake/OpenCVDetectCXXCompiler.cmake @@ -192,11 +192,13 @@ if(CMAKE_VERSION VERSION_LESS "3.1") endforeach() endif() -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED TRUE) -set(CMAKE_CXX_EXTENSIONS OFF) # use -std=c++11 instead of -std=gnu++11 -if(CMAKE_CXX11_COMPILE_FEATURES) - set(HAVE_CXX11 ON) +if(NOT OPENCV_SKIP_CMAKE_CXX_STANDARD) + ocv_update(CMAKE_CXX_STANDARD 11) + ocv_update(CMAKE_CXX_STANDARD_REQUIRED TRUE) + ocv_update(CMAKE_CXX_EXTENSIONS OFF) # use -std=c++11 instead of -std=gnu++11 + if(CMAKE_CXX11_COMPILE_FEATURES) + set(HAVE_CXX11 ON) + endif() endif() if(NOT HAVE_CXX11) ocv_check_compiler_flag(CXX "" HAVE_CXX11 "${OpenCV_SOURCE_DIR}/cmake/checks/cxx11.cpp")