message(STATUS "Preparing Xtensa toolchain")

set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_LIST_DIR}/xtensa-platform.cmake")

set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_VERSION 1)

set(CMAKE_ASM_COMPILER_FORCED 1)
set(CMAKE_C_COMPILER_FORCED 1)

set(CMAKE_ASM_COMPILER_ID GNU)
set(CMAKE_C_COMPILER_ID GNU)

# in case if *_FORCED variables are ignored,
# try to just compile lib instead of executable
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

if(TOOLCHAIN)
	set(CROSS_COMPILE "${TOOLCHAIN}-")
else()
	message(FATAL_ERROR
		" Please specify toolchain to use.\n"
		" Examples:\n"
		" 	1) cmake -DTOOLCHAIN=xt ...\n"
		" 	2) cmake -DTOOLCHAIN=xtensa-apl-elf ...\n"
	)
endif()

# xt toolchain only partially follows gcc convention
if(TOOLCHAIN STREQUAL "xt")
	set(XCC 1)
	set(CMAKE_C_COMPILER ${CROSS_COMPILE}xcc)
else()
	set(CMAKE_C_COMPILER ${CROSS_COMPILE}gcc)
endif()

set(CMAKE_LD		${CROSS_COMPILE}ld CACHE STRING "")
set(CMAKE_AR		${CROSS_COMPILE}ar CACHE STRING "")
set(CMAKE_OBJCOPY	${CROSS_COMPILE}objcopy)
set(CMAKE_OBJDUMP	${CROSS_COMPILE}objdump)

set(CMAKE_FIND_ROOT_PATH  ".")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
