1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # 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 extentions.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()
|