2018-12-28 04:20:13 +08:00
|
|
|
message(STATUS "Preparing Xtensa toolchain")
|
|
|
|
|
2019-02-06 05:29:57 +08:00
|
|
|
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_LIST_DIR}/xtensa-platform.cmake")
|
|
|
|
|
2018-12-28 04:20:13 +08:00
|
|
|
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)
|