From: Georg Baum Date: Sat, 2 Jul 2016 10:39:08 +0000 (+0200) Subject: Fix std::regex detection for older gcc X-Git-Tag: 2.3.0alpha1~1364 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=e49d59dafc37c38642a640504fe00e696116af26;p=features.git 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. --- 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