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:
parent
9913fd4f42
commit
56c827ac2c
@ -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()
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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})
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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})
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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})
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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})
|
||||
|
||||
@ -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})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user