xref: /aosp_15_r20/external/executorch/backends/cadence/cadence.cmake (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
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