Skip to content

Commit 13f649a

Browse files
committed
compiler/iar: Support SDK 0.18 directory layout
The iar toolchain uses some tools from the Zephyr SDK. With version 0.18, the path to the GNU generic.cmake file has moved. Adapt to that by checking for the new location and using that if available. Signed-off-by: Keith Packard <keithp@keithp.com>
1 parent 04f3b5d commit 13f649a

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

cmake/bintools/iar/target.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ include(extensions)
88
# Specifically choose arm-zephyr-eabi from the zephyr sdk for objcopy and friends
99

1010
if("${IAR_TOOLCHAIN_VARIANT}" STREQUAL "iccarm")
11-
set(IAR_ZEPHYR_HOME ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin)
11+
if(EXISTS ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/gnu/generic.cmake)
12+
set(IAR_ZEPHYR_HOME ${ZEPHYR_SDK_INSTALL_DIR}/gnu/arm-zephyr-eabi/bin)
13+
else()
14+
set(IAR_ZEPHYR_HOME ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin)
15+
endif()
1216
set(IAR_GNU_PREFIX arm-zephyr-eabi-)
1317
else()
1418
message(ERROR "IAR_TOOLCHAIN_VARIANT not set")

cmake/compiler/iar/generic.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
# SPDX-License-Identifier: Apache-2.0
44

55
if(NOT CMAKE_DTS_PREPROCESSOR)
6-
find_program(CMAKE_DTS_PREPROCESSOR arm-zephyr-eabi-gcc PATHS ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin NO_DEFAULT_PATH)
6+
if(EXISTS ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/gnu/generic.cmake)
7+
find_program(CMAKE_DTS_PREPROCESSOR arm-zephyr-eabi-gcc PATHS ${ZEPHYR_SDK_INSTALL_DIR}/gnu/arm-zephyr-eabi/bin NO_DEFAULT_PATH)
8+
else()
9+
find_program(CMAKE_DTS_PREPROCESSOR arm-zephyr-eabi-gcc PATHS ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin NO_DEFAULT_PATH)
10+
endif()
711
endif()
812

913
if(NOT CMAKE_DTS_PREPROCESSOR)

cmake/compiler/iar/target.cmake

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,29 @@ find_program(CMAKE_AR
3232

3333
set(CMAKE_ASM_COMPILER)
3434
if("${IAR_TOOLCHAIN_VARIANT}" STREQUAL "iccarm")
35-
find_program(CMAKE_ASM_COMPILER
36-
arm-zephyr-eabi-gcc
37-
PATHS ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin
38-
NO_DEFAULT_PATH )
35+
if(EXISTS ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/gnu/generic.cmake)
36+
find_program(CMAKE_ASM_COMPILER
37+
arm-zephyr-eabi-gcc
38+
PATHS ${ZEPHYR_SDK_INSTALL_DIR}/gnu/arm-zephyr-eabi/bin
39+
NO_DEFAULT_PATH )
40+
else()
41+
find_program(CMAKE_ASM_COMPILER
42+
arm-zephyr-eabi-gcc
43+
PATHS ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin
44+
NO_DEFAULT_PATH )
45+
endif()
3946
else()
40-
find_program(CMAKE_ASM_COMPILER
41-
riscv64-zephyr-elf-gcc
42-
PATHS ${ZEPHYR_SDK_INSTALL_DIR}/riscv64-zephyr-elf/bin
43-
NO_DEFAULT_PATH )
47+
if(EXISTS ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/gnu/generic.cmake)
48+
find_program(CMAKE_ASM_COMPILER
49+
riscv64-zephyr-elf-gcc
50+
PATHS ${ZEPHYR_SDK_INSTALL_DIR}/gnu/riscv64-zephyr-elf/bin
51+
NO_DEFAULT_PATH )
52+
else()
53+
find_program(CMAKE_ASM_COMPILER
54+
riscv64-zephyr-elf-gcc
55+
PATHS ${ZEPHYR_SDK_INSTALL_DIR}/riscv64-zephyr-elf/bin
56+
NO_DEFAULT_PATH )
57+
endif()
4458
endif()
4559

4660
message(STATUS "Found assembler ${CMAKE_ASM_COMPILER}")

0 commit comments

Comments
 (0)