From e49d59dafc37c38642a640504fe00e696116af26 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Sat, 2 Jul 2016 12:39:08 +0200 Subject: [PATCH] Fix std::regex detection for older gcc Older gcc versions (e.g. the first one which has usable std::regex: gcc 4.9) require the --std=c++11 flag to be set. Otherwise std::regex is not made available. Therefore we need to keep the flag in the loop. --- development/cmake/modules/FindCXX11Compiler.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/development/cmake/modules/FindCXX11Compiler.cmake b/development/cmake/modules/FindCXX11Compiler.cmake index ddd4713dad..56fa0c34fe 100644 --- a/development/cmake/modules/FindCXX11Compiler.cmake +++ b/development/cmake/modules/FindCXX11Compiler.cmake @@ -104,12 +104,11 @@ int main() # check c compiler set(SAFE_CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET}) set(CMAKE_REQUIRED_QUIET ON) +SET(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") FOREACH(FLAG ${CXX11_FLAG_CANDIDATES}) - SET(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") SET(CMAKE_REQUIRED_FLAGS "${FLAG}") UNSET(CXX11_FLAG_DETECTED CACHE) CHECK_CXX_SOURCE_COMPILES("${CXX11_TEST_SOURCE}" CXX11_FLAG_DETECTED) - SET(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}") IF(CXX11_FLAG_DETECTED) SET(CXX11_FLAG "${FLAG}") message(STATUS "CXX11_FLAG_DETECTED = \"${FLAG}\"") @@ -125,6 +124,7 @@ FOREACH(FLAG ${CXX11_FLAG_CANDIDATES}) break() ENDIF() ENDFOREACH() +SET(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}") set(CMAKE_REQUIRED_QUIET ${SAFE_CMAKE_REQUIRED_QUIET}) # handle the standard arguments for find_package