cmake: use zephyr_get in toolchains to ensure identical behavior.

Fixes: #40389

Update toolchain handling to use zephyr_get() to ensure consistent
handling of CMake cache variables, environment variable, and CMake
local variables.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit is contained in:
Torsten Rasmussen 2022-07-14 15:44:53 +02:00 committed by Carles Cufí
parent 9913fd4f42
commit 56c827ac2c
11 changed files with 17 additions and 26 deletions

View File

@ -47,7 +47,7 @@ if("XCC_USE_CLANG" IN_LIST Deprecated_FIND_COMPONENTS)
if ("${ZEPHYR_TOOLCHAIN_VARIANT}" STREQUAL "xcc"
AND "$ENV{XCC_USE_CLANG}" STREQUAL "1")
set(ZEPHYR_TOOLCHAIN_VARIANT xcc-clang)
set(ZEPHYR_TOOLCHAIN_VARIANT xcc-clang CACHE STRING "Zephyr toolchain variant" FORCE)
message(DEPRECATION "XCC_USE_CLANG is deprecated. Please set ZEPHYR_TOOLCHAIN_VARIANT to 'xcc-clang'")
endif()
endif()
@ -61,7 +61,7 @@ if("CROSS_COMPILE" IN_LIST Deprecated_FIND_COMPONENTS)
if(NOT ZEPHYR_TOOLCHAIN_VARIANT AND
(CROSS_COMPILE OR (DEFINED ENV{CROSS_COMPILE})))
set(ZEPHYR_TOOLCHAIN_VARIANT cross-compile)
set(ZEPHYR_TOOLCHAIN_VARIANT cross-compile CACHE STRING "Zephyr toolchain variant" FORCE)
message(DEPRECATION "CROSS_COMPILE is deprecated. Please set ZEPHYR_TOOLCHAIN_VARIANT to 'cross-compile'")
endif()
endif()

View File

@ -23,13 +23,9 @@
# True if the Zephyr SDK was found.
# Set internal variables if set in environment.
if(NOT DEFINED ZEPHYR_TOOLCHAIN_VARIANT)
set(ZEPHYR_TOOLCHAIN_VARIANT $ENV{ZEPHYR_TOOLCHAIN_VARIANT})
endif()
zephyr_get(ZEPHYR_TOOLCHAIN_VARIANT)
if(NOT DEFINED ZEPHYR_SDK_INSTALL_DIR)
set(ZEPHYR_SDK_INSTALL_DIR $ENV{ZEPHYR_SDK_INSTALL_DIR})
endif()
zephyr_get(ZEPHYR_SDK_INSTALL_DIR)
# Load Zephyr SDK Toolchain.
# There are three scenarios where Zephyr SDK should be looked up:

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(ARCMWDT_TOOLCHAIN_PATH "$ENV{ARCMWDT_TOOLCHAIN_PATH}")
set(ARCMWDT_TOOLCHAIN_PATH ${ARCMWDT_TOOLCHAIN_PATH} CACHE PATH "mwdt tools install directory")
zephyr_get(ARCMWDT_TOOLCHAIN_PATH)
assert(ARCMWDT_TOOLCHAIN_PATH "ARCMWDT_TOOLCHAIN_PATH is not set")
if(NOT EXISTS ${ARCMWDT_TOOLCHAIN_PATH})

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(ARMCLANG_TOOLCHAIN_PATH "$ENV{ARMCLANG_TOOLCHAIN_PATH}")
set(ARMCLANG_TOOLCHAIN_PATH ${ARMCLANG_TOOLCHAIN_PATH} CACHE PATH "armclang tools install directory")
zephyr_get(ARMCLANG_TOOLCHAIN_PATH)
assert(ARMCLANG_TOOLCHAIN_PATH "ARMCLANG_TOOLCHAIN_PATH is not set")
if(${CMAKE_VERSION} VERSION_LESS 3.21

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(ESPRESSIF_TOOLCHAIN_PATH "$ENV{ESPRESSIF_TOOLCHAIN_PATH}")
set( ESPRESSIF_TOOLCHAIN_PATH ${ESPRESSIF_TOOLCHAIN_PATH} CACHE PATH "")
zephyr_get(ESPRESSIF_TOOLCHAIN_PATH)
assert( ESPRESSIF_TOOLCHAIN_PATH "ESPRESSIF_TOOLCHAIN_PATH is not set")
set(TOOLCHAIN_HOME ${ESPRESSIF_TOOLCHAIN_PATH})

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(ESPRESSIF_TOOLCHAIN_PATH "$ENV{ESPRESSIF_TOOLCHAIN_PATH}")
set( ESPRESSIF_TOOLCHAIN_PATH ${ESPRESSIF_TOOLCHAIN_PATH} CACHE PATH "")
zephyr_get(ESPRESSIF_TOOLCHAIN_PATH)
assert( ESPRESSIF_TOOLCHAIN_PATH "ESPRESSIF_TOOLCHAIN_PATH is not set")
set(COMPILER gcc)

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(GNUARMEMB_TOOLCHAIN_PATH "$ENV{GNUARMEMB_TOOLCHAIN_PATH}")
set( GNUARMEMB_TOOLCHAIN_PATH ${GNUARMEMB_TOOLCHAIN_PATH} CACHE PATH "gnuarmemb install directory")
zephyr_get(GNUARMEMB_TOOLCHAIN_PATH)
assert( GNUARMEMB_TOOLCHAIN_PATH "GNUARMEMB_TOOLCHAIN_PATH is not set")
if(NOT EXISTS ${GNUARMEMB_TOOLCHAIN_PATH})

View File

@ -1,7 +1,9 @@
# SPDX-License-Identifier: Apache-2.0
# Todo: deprecate CLANG_ROOT_DIR
set_ifndef(LLVM_TOOLCHAIN_PATH "$ENV{CLANG_ROOT_DIR}")
set_ifndef(LLVM_TOOLCHAIN_PATH "$ENV{LLVM_TOOLCHAIN_PATH}")
zephyr_get(LLVM_TOOLCHAIN_PATH)
if(LLVM_TOOLCHAIN_PATH)
set(TOOLCHAIN_HOME ${LLVM_TOOLCHAIN_PATH}/bin/)
endif()

View File

@ -1,9 +1,9 @@
# SPDX-License-Identifier: Apache-2.0
if($ENV{ONEAPI_ROOT})
set_ifndef(ONEAPI_TOOLCHAIN_PATH "$ENV{ONEAPI_ROOT}")
if(DEFINED ENV{ONEAPI_ROOT})
set_ifndef(ONEAPI_TOOLCHAIN_PATH $ENV{ONEAPI_ROOT})
else()
set_ifndef(ONEAPI_TOOLCHAIN_PATH "$ENV{ONEAPI_TOOLCHAIN_PATH}")
zephyr_get(ONEAPI_TOOLCHAIN_PATH)
endif()
# the default oneApi installation path is related to os

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(XTENSA_TOOLCHAIN_PATH "$ENV{XTENSA_TOOLCHAIN_PATH}")
set( XTENSA_TOOLCHAIN_PATH ${XTENSA_TOOLCHAIN_PATH} CACHE PATH "xtensa tools install directory")
zephyr_get(XTENSA_TOOLCHAIN_PATH)
assert( XTENSA_TOOLCHAIN_PATH "XTENSA_TOOLCHAIN_PATH is not set")
if(NOT EXISTS ${XTENSA_TOOLCHAIN_PATH})

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
set_ifndef(XTOOLS_TOOLCHAIN_PATH "$ENV{XTOOLS_TOOLCHAIN_PATH}")
set( XTOOLS_TOOLCHAIN_PATH ${XTOOLS_TOOLCHAIN_PATH} CACHE PATH "")
zephyr_get(XTOOLS_TOOLCHAIN_PATH)
assert( XTOOLS_TOOLCHAIN_PATH "XTOOLS_TOOLCHAIN_PATH is not set")
set(TOOLCHAIN_HOME ${XTOOLS_TOOLCHAIN_PATH})