IAR: Fix detection of modern C++ version

The change in commit cc4da8d13a (IAR/CXX: Fix compatibility with CMP0057
OLD, 2022-01-29, v3.23.0-rc1~46^2) broke the detection of C++ version
because the `IN_LIST` operator cannot work directly on a list but
requires a variable.
This commit is contained in:
Kenneth Soerensen
2022-03-08 10:28:49 +01:00
committed by Brad King
parent 130c988982
commit bd3e23a605

View File

@@ -19,12 +19,14 @@ if(NOT CMAKE_IAR_CXX_FLAG)
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW) # if IN_LIST
if(${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT} IN_LIST "14;17" OR
set(_CMAKE_IAR_MODERNCXX_LIST 14 17)
if(${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT} IN_LIST _CMAKE_IAR_MODERNCXX_LIST OR
("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM" AND ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT} EQUAL 98))
string(PREPEND CMAKE_CXX_FLAGS "--c++ ")
else()
string(PREPEND CMAKE_CXX_FLAGS "--eec++ ")
endif()
unset(_CMAKE_IAR_MODERNCXX_LIST)
cmake_policy(POP)
endif()