1*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates. 2*523fa7a6SAndroid Build Coastguard Worker# All rights reserved. 3*523fa7a6SAndroid Build Coastguard Worker# 4*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the 5*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree. 6*523fa7a6SAndroid Build Coastguard Worker 7*523fa7a6SAndroid Build Coastguard Workerset(XTENSA_TOOLCHAIN_PATH $ENV{XTENSA_TOOLCHAIN}) 8*523fa7a6SAndroid Build Coastguard Worker 9*523fa7a6SAndroid Build Coastguard Workerif(NOT EXISTS ${XTENSA_TOOLCHAIN_PATH}) 10*523fa7a6SAndroid Build Coastguard Worker message( 11*523fa7a6SAndroid Build Coastguard Worker FATAL_ERROR 12*523fa7a6SAndroid Build Coastguard Worker "Nothing found at XTENSA_TOOLCHAIN_PATH: '${XTENSA_TOOLCHAIN_PATH}'" 13*523fa7a6SAndroid Build Coastguard Worker ) 14*523fa7a6SAndroid Build Coastguard Workerendif() 15*523fa7a6SAndroid Build Coastguard Worker 16*523fa7a6SAndroid Build Coastguard Workerset(TOOLCHAIN_HOME ${XTENSA_TOOLCHAIN_PATH}/$ENV{TOOLCHAIN_VER}/XtensaTools) 17*523fa7a6SAndroid Build Coastguard Worker 18*523fa7a6SAndroid Build Coastguard Workerset(LINKER ld) 19*523fa7a6SAndroid Build Coastguard Workerset(BINTOOLS gnu) 20*523fa7a6SAndroid Build Coastguard Worker 21*523fa7a6SAndroid Build Coastguard Workerset(CROSS_COMPILE_TARGET xt) 22*523fa7a6SAndroid Build Coastguard Workerset(SYSROOT_TARGET xtensa-elf) 23*523fa7a6SAndroid Build Coastguard Worker 24*523fa7a6SAndroid Build Coastguard Workerset(CROSS_COMPILE ${TOOLCHAIN_HOME}/bin/${CROSS_COMPILE_TARGET}-) 25*523fa7a6SAndroid Build Coastguard Workerset(SYSROOT_DIR ${TOOLCHAIN_HOME}/${SYSROOT_TARGET}) 26*523fa7a6SAndroid Build Coastguard Worker 27*523fa7a6SAndroid Build Coastguard Workerset(NOSYSDEF_CFLAG "") 28*523fa7a6SAndroid Build Coastguard Worker 29*523fa7a6SAndroid Build Coastguard Workerlist(APPEND TOOLCHAIN_C_FLAGS -fms-extensions) 30*523fa7a6SAndroid Build Coastguard Worker 31*523fa7a6SAndroid Build Coastguard Workerset(TOOLCHAIN_HAS_NEWLIB 32*523fa7a6SAndroid Build Coastguard Worker OFF 33*523fa7a6SAndroid Build Coastguard Worker CACHE BOOL "True if toolchain supports newlib" 34*523fa7a6SAndroid Build Coastguard Worker) 35*523fa7a6SAndroid Build Coastguard Worker 36*523fa7a6SAndroid Build Coastguard Workerset(COMPILER xt-clang) 37*523fa7a6SAndroid Build Coastguard Worker# set(CC clang) set(C++ clang++) 38*523fa7a6SAndroid Build Coastguard Workerset(LINKER xt-ld) 39*523fa7a6SAndroid Build Coastguard Worker 40*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_CROSSCOMPILING TRUE) 41*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_C_COMPILER ${TOOLCHAIN_HOME}/bin/${CROSS_COMPILE_TARGET}-clang) 42*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_CXX_COMPILER ${TOOLCHAIN_HOME}/bin/${CROSS_COMPILE_TARGET}-clang++) 43*523fa7a6SAndroid Build Coastguard Worker 44*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_C_FLAGS_INIT "-stdlib=libc++ -mtext-section-literals -mlongcalls") 45*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_CXX_FLAGS_INIT "-stdlib=libc++ -mtext-section-literals -mlongcalls") 46*523fa7a6SAndroid Build Coastguard Worker#workaround for larger compilation time 47*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} -fno-strict-aliasing") 48*523fa7a6SAndroid Build Coastguard Worker 49*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_SYSROOT ${TOOLCHAIN_HOME}/${SYSROOT_TARGET}) 50*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_LINKER ${TOOLCHAIN_HOME}/bin/xt-ld) 51*523fa7a6SAndroid Build Coastguard Workeradd_link_options(-lm -stdlib=libc++ -Wl,--no-as-needed -static) 52*523fa7a6SAndroid Build Coastguard Workermessage(STATUS "Found toolchain: xt-clang (${XTENSA_TOOLCHAIN_PATH})") 53