blob: e27fdfcb8030959cbcf0bf3f5e4d69182e9b9adf [file] [log] [blame]
Haibo Huangd00577c2020-02-28 16:35:48 -08001# This file is processed when the IAR compiler is used for a C file
2
3include(Compiler/IAR)
4include(Compiler/CMakeCommonCompilerMacros)
5
6# Common
7if(NOT CMAKE_C_COMPILER_VERSION)
8 message(FATAL_ERROR "CMAKE_C_COMPILER_VERSION not detected. This should be automatic.")
9endif()
10
11set(CMAKE_C_EXTENSION_COMPILE_OPTION -e)
12
13if(CMAKE_C_COMPILER_VERSION_INTERNAL VERSION_GREATER 7)
14 set(CMAKE_C90_STANDARD_COMPILE_OPTION --c89)
15 set(CMAKE_C90_EXTENSION_COMPILE_OPTION --c89 -e)
16 set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
17 set(CMAKE_C99_EXTENSION_COMPILE_OPTION -e)
18else()
19 set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
20 set(CMAKE_C90_EXTENSION_COMPILE_OPTION -e)
21endif()
22
23if(CMAKE_C_COMPILER_VERSION_INTERNAL VERSION_GREATER 8)
24 set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
25 set(CMAKE_C11_EXTENSION_COMPILE_OPTION -e)
26endif()
27
28# Architecture specific
29if("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
30 if(CMAKE_C_COMPILER_VERSION_INTERNAL VERSION_LESS 7)
31 # IAR ARM 4.X uses xlink.exe, detection is not yet implemented
32 message(FATAL_ERROR "CMAKE_C_COMPILER_VERSION = ${CMAKE_C_COMPILER_VERSION} not supported by CMake.")
33 endif()
34 __compiler_iar_ilink(C)
35 __compiler_check_default_language_standard(C 1.10 90 6.10 99 8.10 11)
36
37elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
38 __compiler_iar_ilink(C)
39 __compiler_check_default_language_standard(C 1.10 90 2.10 99 4.10 11)
40
41elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
42 __compiler_iar_ilink(C)
43 __compiler_check_default_language_standard(C 1.10 90 1.10 99 2.10 11)
44
45elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
46 __compiler_iar_ilink(C)
47 __compiler_check_default_language_standard(C 1.10 90 1.10 99 4.10 11)
48
49elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RISCV")
50 __compiler_iar_ilink(C)
51 __compiler_check_default_language_standard(C 1.10 90 1.10 99 1.10 11)
52
53elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
54 __compiler_iar_xlink(C)
55 __compiler_check_default_language_standard(C 7.10 99)
56 set(CMAKE_C_OUTPUT_EXTENSION ".r90")
57
58elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
59 __compiler_iar_xlink(C)
60 __compiler_check_default_language_standard(C 1.10 90 5.10 99)
61 set(CMAKE_C_OUTPUT_EXTENSION ".r43")
62
63elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "V850")
64 __compiler_iar_xlink(C)
65 __compiler_check_default_language_standard(C 1.10 90 4.10 99)
66 set(CMAKE_C_OUTPUT_EXTENSION ".r85")
67
68elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "8051")
69 __compiler_iar_xlink(C)
70 __compiler_check_default_language_standard(C 6.10 90 8.10 99)
71 set(CMAKE_C_OUTPUT_EXTENSION ".r51")
72
73else()
74 message(FATAL_ERROR "CMAKE_C_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
75endif()