You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.1 KiB
53 lines
2.1 KiB
# find the compilers for C, CPP, assembly |
|
find_program(CMAKE_C_COMPILER ${CROSS_COMPILE}ccac PATH ${TOOLCHAIN_HOME} NO_DEFAULT_PATH) |
|
find_program(CMAKE_CXX_COMPILER ${CROSS_COMPILE}ccac PATH ${TOOLCHAIN_HOME} NO_DEFAULT_PATH) |
|
find_program(CMAKE_ASM_COMPILER ${CROSS_COMPILE}ccac PATH ${TOOLCHAIN_HOME} NO_DEFAULT_PATH) |
|
# The CMAKE_REQUIRED_FLAGS variable is used by check_c_compiler_flag() |
|
# (and other commands which end up calling check_c_source_compiles()) |
|
# to add additional compiler flags used during checking. These flags |
|
# are unused during "real" builds of Zephyr source files linked into |
|
# the final executable. |
|
# |
|
# Appending onto any existing values lets users specify |
|
# toolchain-specific flags at generation time. |
|
list(APPEND CMAKE_REQUIRED_FLAGS |
|
-c |
|
-HL |
|
-Hnosdata |
|
-Hnolib |
|
-Hnocrt |
|
-Hnoentry |
|
-Hldopt=-Bbase=0x0 # Set an entry point to avoid a warning |
|
-Werror |
|
) |
|
string(REPLACE ";" " " CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") |
|
|
|
set(NOSTDINC "") |
|
|
|
list(APPEND NOSTDINC ${TOOLCHAIN_HOME}/arc/inc) |
|
|
|
if(CONFIG_ARCMWDT_LIBC AND CONFIG_LIB_CPLUSPLUS) |
|
list(APPEND NOSTDINC ${TOOLCHAIN_HOME}/arc/lib/src/c++/inc) |
|
endif() |
|
|
|
# For CMake to be able to test if a compiler flag is supported by the |
|
# toolchain we need to give CMake the necessary flags to compile and |
|
# link a dummy C file. |
|
# |
|
# CMake checks compiler flags with check_c_compiler_flag() (Which we |
|
# wrap with target_cc_option() in extensions.cmake) |
|
foreach(isystem_include_dir ${NOSTDINC}) |
|
list(APPEND isystem_include_flags -isystem "\"${isystem_include_dir}\"") |
|
endforeach() |
|
|
|
# common compile options, no copyright msg, little-endian, no small data, |
|
# no MWDT stack checking |
|
list(APPEND TOOLCHAIN_C_FLAGS -Hnocopyr -HL -Hnosdata -Hoff=Stackcheck_alloca) |
|
|
|
# The MWDT compiler can replace some code with call to builtin functions. |
|
# We can't rely on these functions presence if we don't use MWDT libc. |
|
# NOTE: the option name '-fno-builtin' is misleading a bit - we still can |
|
# manually call __builtin_** functions even if we specify it. |
|
if(NOT CONFIG_ARCMWDT_LIBC) |
|
list(APPEND TOOLCHAIN_C_FLAGS -fno-builtin) |
|
endif()
|
|
|