# | |
# Copyright 2018 NXP | |
# SPDX-License-Identifier: Apache-2.0 | |
# | |
INCLUDE(CMakeForceCompiler) | |
# TOOLCHAIN EXTENSION | |
IF(WIN32) | |
SET(TOOLCHAIN_EXT ".exe") | |
ELSE() | |
SET(TOOLCHAIN_EXT "") | |
ENDIF() | |
# EXECUTABLE EXTENSION | |
SET(CMAKE_EXECUTABLE_SUFFIX ".elf") | |
SET(CROSS_COMPILE_PREFIX "arm-none-eabi-") | |
FIND_FILE( | |
arm-gcc | |
NAMES ${CROSS_COMPILE_PREFIX}gcc ${CROSS_COMPILE_PREFIX}gcc.exe | |
PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} | |
) | |
IF( | |
"${arm-gcc}" | |
STREQUAL | |
"arm-gcc-NOTFOUND" | |
) | |
MESSAGE(WARNING "***Can not find ${CROSS_COMPILE_PREFIX}gcc ***") | |
MESSAGE(FATAL_ERROR "***Please set ARMGCC_DIR in environment variables***") | |
ENDIF() | |
FIND_FILE( | |
arm-gxx | |
NAMES ${CROSS_COMPILE_PREFIX}g++ ${CROSS_COMPILE_PREFIX}g++.exe | |
PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} | |
) | |
FIND_FILE( | |
arm-asm | |
NAMES ${CROSS_COMPILE_PREFIX}gcc ${CROSS_COMPILE_PREFIX}gcc.exe | |
PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} | |
) | |
FIND_FILE( | |
arm-ar | |
NAMES ${CROSS_COMPILE_PREFIX}ar ${CROSS_COMPILE_PREFIX}ar.exe | |
PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} | |
) | |
FIND_FILE( | |
arm-objcopy | |
NAMES ${CROSS_COMPILE_PREFIX}objcopy ${CROSS_COMPILE_PREFIX}objcopy.exe | |
PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} | |
) | |
FIND_FILE( | |
arm-objdump | |
NAMES ${CROSS_COMPILE_PREFIX}objdump ${CROSS_COMPILE_PREFIX}objdump.exe | |
PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} | |
) | |
# FIND_FILE(arm-nm NAMES ${CROSS_COMPILE_PREFIX}nm ${CROSS_COMPILE_PREFIX}nm.exe PATHS $ENV{ARMGCC_DIR}/bin;$ENV{PATH} ) | |
# FIND_FILE(arm-size NAMES ${CROSS_COMPILE_PREFIX}size ${CROSS_COMPILE_PREFIX}size.exe PATHS | |
# $ENV{ARMGCC_DIR}/bin;$ENV{PATH} ) | |
SET(CMAKE_SYSTEM_NAME GNU) | |
SET(CMAKE_SYSTEM_PROCESSOR arm) | |
SET(CMAKE_C_COMPILER ${arm-gcc}) | |
SET(CMAKE_CXX_COMPILER ${arm-gxx}) | |
SET(CMAKE_ASM_COMPILER ${arm-asm}) | |
SET( | |
CMAKE_OBJCOPY | |
${arm-objcopy} | |
CACHE INTERNAL "objcopy tool" | |
) | |
SET( | |
CMAKE_OBJDUMP | |
${arm-objdump} | |
CACHE INTERNAL "objdump tool" | |
) | |
# SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR}/${TARGET_TRIPLET} ${EXTRA_FIND_PATH}) | |
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | |
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) | |
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) | |
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) | |
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}) | |
SET(CMAKE_C_COMPILER_WORKS 1) | |
SET(CMAKE_CXX_COMPILER_WORKS 1) |