1# This file is processed when the IAR Assembler is used
2
3include(Compiler/IAR)
4
5cmake_policy(PUSH)
6cmake_policy(SET CMP0057 NEW) # if IN_LIST
7
8set(_CMAKE_IAR_ITOOLS "ARM" "RH850"  "RL78" "RX" "RISC-V" "STM8")
9set(_CMAKE_IAR_XTOOLS "AVR" "MSP430" "V850" "8051")
10
11set(_CMAKE_IAR_ASM_SILENT   "RH850"  "RL78" "RX" "RISC-V" "STM8")
12if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" IN_LIST _CMAKE_IAR_ASM_SILENT)
13  set(_CMAKE_IAR_SILENCER_FLAG " --silent")
14else()
15  set(_CMAKE_IAR_SILENCER_FLAG " -S")
16endif()
17
18string(APPEND CMAKE_ASM_FLAGS_INIT " ")
19string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
20string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
21string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
22string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
23
24set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> ${_CMAKE_IAR_SILENCER_FLAG} <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
25
26if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" IN_LIST _CMAKE_IAR_ITOOLS)
27  __compiler_iar_ilink(ASM)
28  set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa;S)
29
30elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" IN_LIST _CMAKE_IAR_XTOOLS)
31  __compiler_iar_xlink(ASM)
32  # AVR=s90, MSP430=s43, V850=s85, 8051=s51
33  set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;s43;s85;s51;asm;msa)
34
35else()
36  message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
37
38endif()
39
40unset(_CMAKE_IAR_ITOOLS)
41unset(_CMAKE_IAR_XTOOLS)
42unset(_CMAKE_IAR_ASM_SILENT)
43unset(_CMAKE_IAR_SILENCER_FLAG)
44
45cmake_policy(POP)
46