MSVC: Do not add /GR to CMAKE_CXX_FLAGS by default

The `/GR` flag has been on by default since MSVC cl 14.0 from VS 2005.
Remove it from the default flags to make it easier for projects to pass
`/GR-` themselves to turn it off.

Projects may be using string processing to replace `/GR` with another
flag, so we cannot simply drop it.  Add a policy to drop it in a
compatible way.

Fixes: #21428
This commit is contained in:
Brad King
2020-11-13 11:15:57 -05:00
parent 6114c8e994
commit c00a6d3967
12 changed files with 88 additions and 1 deletions

View File

@@ -163,7 +163,13 @@ foreach(lang C CXX)
endif()
endforeach()
set(_GR " /GR")
cmake_policy(GET CMP0117 __WINDOWS_MSVC_CMP0117)
if(__WINDOWS_MSVC_CMP0117 STREQUAL "NEW")
set(_GR "")
else()
set(_GR " /GR")
endif()
unset(__WINDOWS_MSVC_CMP0117)
if(WINCE)
foreach(lang C CXX)