diff options
author | Raul Tambre <raul@tambre.ee> | 2022-01-29 20:48:25 (GMT) |
---|---|---|
committer | Raul Tambre <raul@tambre.ee> | 2022-01-29 20:55:24 (GMT) |
commit | cc4da8d13a93e2ad1de22144ac6c7dd3c97e1f03 (patch) | |
tree | 797e6158b25184040c46e52725b874a5cf4aea14 | |
parent | b1325f591294ac989d985b5b64546e640d765d92 (diff) | |
download | CMake-cc4da8d13a93e2ad1de22144ac6c7dd3c97e1f03.zip CMake-cc4da8d13a93e2ad1de22144ac6c7dd3c97e1f03.tar.gz CMake-cc4da8d13a93e2ad1de22144ac6c7dd3c97e1f03.tar.bz2 |
IAR/CXX: Fix compatibility with CMP0057 OLD
Commit a9073db7 (IAR: update language specification detection, 2021-09-23)
added usage of the if() IN_LIST operation and forgot to account for it not
being available in CMP0057 OLD mode.
Push and temporarily enable the policy. Also avoid the unnecessary temporary
variable for the list.
Fixes #23147.
-rw-r--r-- | Modules/Compiler/IAR-CXX.cmake | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Modules/Compiler/IAR-CXX.cmake b/Modules/Compiler/IAR-CXX.cmake index a3f1dbc..7df74ad 100644 --- a/Modules/Compiler/IAR-CXX.cmake +++ b/Modules/Compiler/IAR-CXX.cmake @@ -16,14 +16,17 @@ endif() # Whenever needed, override this default behavior using CMAKE_IAR_CXX_FLAG in your toolchain file. if(NOT CMAKE_IAR_CXX_FLAG) - set(_CMAKE_IAR_MODERNCXX_LIST 14 17) - if(${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT} IN_LIST _CMAKE_IAR_MODERNCXX_LIST OR + cmake_policy(PUSH) + cmake_policy(SET CMP0057 NEW) # if IN_LIST + + if(${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT} IN_LIST "14;17" 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() set(CMAKE_CXX_STANDARD_COMPILE_OPTION "") |