# CROSS_COMPILE is a KBuild mechanism for specifying an external
# toolchain with a single environment variable.
#
# It is a legacy mechanism that will in Zephyr translate to
# specififying ZEPHYR_GCC_VARIANT to 'cross-compile' with the location
# 'CROSS_COMPILE'.
#
# New users should set the env var 'ZEPHYR_GCC_VARIANT' to
# 'cross-compile' and the 'CROSS_COMPILE' env var to the toolchain
# prefix. This interface is consisent with the other non-"Zephyr SDK"
# toolchains.
#
# It can be set from three sources, the KConfig option
# CONFIG_CROSS_COMPILE, the CMake var CROSS_COMPILE, or the env var
# CROSS_COMPILE.
#
# The env var has the lowest precedence.
#
# It is not clear what should have the highest precedence of a Kconfig
# option and a CMake var so an error is triggered if they are both
# defined, but are defined with different values.

if(CONFIG_CROSS_COMPILE AND CROSS_COMPILE)
  if(NOT (${CONFIG_CROSS_COMPILE} STREQUAL ${CROSS_COMPILE}))
    message(FATAL_ERROR "The Kconfig and CMake var's must match when defined simultaneously:
CONFIG_CROSS_COMPILE: ${CONFIG_CROSS_COMPILE}
CROSS_COMPILE: ${CROSS_COMPILE}")
  endif()
endif()

if(CONFIG_CROSS_COMPILE)
  set(CROSS_COMPILE ${CONFIG_CROSS_COMPILE})
elseif(DEFINED ENV{CROSS_COMPILE})
  set(CROSS_COMPILE $ENV{CROSS_COMPILE})
endif()

set(   CROSS_COMPILE ${CROSS_COMPILE} CACHE PATH "")
assert(CROSS_COMPILE "CROSS_COMPILE is not set")

set(COMPILER gcc)
