From 0b684524ac657b03ea233e039aad5c8e43a52f2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 25 Apr 2019 15:04:26 +0200 Subject: IAR: Fix building with IAR ARM 6.X Use the correct version macros and version numbers. --- Modules/Compiler/IAR-C.cmake | 4 ++-- Modules/Compiler/IAR-CXX.cmake | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Modules/Compiler/IAR-C.cmake b/Modules/Compiler/IAR-C.cmake index cb10020..d19b502 100644 --- a/Modules/Compiler/IAR-C.cmake +++ b/Modules/Compiler/IAR-C.cmake @@ -10,7 +10,7 @@ endif() set(CMAKE_C_EXTENSION_COMPILE_OPTION -e) -if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 7) +if(CMAKE_C_COMPILER_VERSION_INTERNAL VERSION_GREATER 7) set(CMAKE_C90_STANDARD_COMPILE_OPTION --c89) set(CMAKE_C90_EXTENSION_COMPILE_OPTION --c89 -e) set(CMAKE_C99_STANDARD_COMPILE_OPTION "") @@ -20,7 +20,7 @@ elseif() set(CMAKE_C90_EXTENSION_COMPILE_OPTION -e) endif() -if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 8) +if(CMAKE_C_COMPILER_VERSION_INTERNAL VERSION_GREATER 8) set(CMAKE_C11_STANDARD_COMPILE_OPTION "") set(CMAKE_C11_EXTENSION_COMPILE_OPTION -e) endif() diff --git a/Modules/Compiler/IAR-CXX.cmake b/Modules/Compiler/IAR-CXX.cmake index eb27e3c..b338de8 100644 --- a/Modules/Compiler/IAR-CXX.cmake +++ b/Modules/Compiler/IAR-CXX.cmake @@ -8,7 +8,8 @@ if(NOT CMAKE_IAR_CXX_FLAG) if(NOT CMAKE_CXX_COMPILER_VERSION) message(FATAL_ERROR "CMAKE_CXX_COMPILER_VERSION not detected. This should be automatic.") endif() - if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 8) + + if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 7) set(CMAKE_IAR_CXX_FLAG --c++) else() set(CMAKE_IAR_CXX_FLAG --eec++) -- cgit v0.12 From 4d78bea5dfa53958a1317f655b1e761e457a54c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 25 Apr 2019 15:07:08 +0200 Subject: IAR: Fail early in case of IAR ARM 4.XX This version is not yet supported because it uses xlink unsetad of ilink. --- Modules/Compiler/IAR-C.cmake | 4 ++++ Modules/Compiler/IAR-CXX.cmake | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Modules/Compiler/IAR-C.cmake b/Modules/Compiler/IAR-C.cmake index d19b502..af5874c 100644 --- a/Modules/Compiler/IAR-C.cmake +++ b/Modules/Compiler/IAR-C.cmake @@ -27,6 +27,10 @@ endif() # Architecture specific if("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM") + if(CMAKE_C_COMPILER_VERSION_INTERNAL VERSION_LESS 7) + # IAR ARM 4.X uses xlink.exe, detection is not yet implemented + message(FATAL_ERROR "CMAKE_C_COMPILER_VERSION = ${CMAKE_C_COMPILER_VERSION} not supported by CMake.") + endif() __compiler_iar_ilink(C) __compiler_check_default_language_standard(C 1.10 90 6.10 99 8.10 11) diff --git a/Modules/Compiler/IAR-CXX.cmake b/Modules/Compiler/IAR-CXX.cmake index b338de8..04ccbe5 100644 --- a/Modules/Compiler/IAR-CXX.cmake +++ b/Modules/Compiler/IAR-CXX.cmake @@ -34,6 +34,10 @@ endif() # Architecture specific if("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM") + if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_LESS 7) + # IAR ARM 4.X uses xlink.exe, detection is not yet implemented + message(FATAL_ERROR "CMAKE_CXX_COMPILER_VERSION = ${CMAKE_C_COMPILER_VERSION} not supported by CMake.") + endif() __compiler_iar_ilink(CXX) __compiler_check_default_language_standard(CXX 6.10 98 8.10 14) -- cgit v0.12