|
- ##
- ## ______ _
- ## / _____) _ | |
- ## ( (____ _____ ____ _| |_ _____ ____| |__
- ## \____ \| ___ | (_ _) ___ |/ ___) _ \
- ## _____) ) ____| | | || |_| ____( (___| | | |
- ## (______/|_____)_|_|_| \__)_____)\____)_| |_|
- ## (C)2013-2017 Semtech
- ## ___ _____ _ ___ _ _____ ___ ___ ___ ___
- ## / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __|
- ## \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _|
- ## |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
- ## embedded.connectivity.solutions.==============
- ##
- ## License: Revised BSD License, see LICENSE.TXT file included in the project
- ## Authors: Johannes Bruder ( STACKFORCE ), Miguel Luis ( Semtech )
- ##
- ##
- ## CMake arm-none-eabi toolchain file
- ##
-
- # Append current directory to CMAKE_MODULE_PATH for making device specific cmake modules visible
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
-
- # Target definition
- set(CMAKE_SYSTEM_NAME Generic)
- set(CMAKE_SYSTEM_PROCESSOR ARM)
-
- #---------------------------------------------------------------------------------------
- # Set toolchain paths
- #---------------------------------------------------------------------------------------
- set(TOOLCHAIN arm-none-eabi)
- if(NOT DEFINED TOOLCHAIN_PREFIX)
- if(CMAKE_HOST_SYSTEM_NAME STREQUAL Linux)
- set(TOOLCHAIN_PREFIX "/usr")
- elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin)
- set(TOOLCHAIN_PREFIX "/usr/local")
- elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
- message(STATUS "Please specify the TOOLCHAIN_PREFIX !\n For example: -DTOOLCHAIN_PREFIX=\"C:/Program Files/GNU Tools ARM Embedded\" ")
- else()
- set(TOOLCHAIN_PREFIX "/usr")
- message(STATUS "No TOOLCHAIN_PREFIX specified, using default: " ${TOOLCHAIN_PREFIX})
- endif()
- endif()
- set(TOOLCHAIN_BIN_DIR ${TOOLCHAIN_PREFIX}/bin)
- set(TOOLCHAIN_INC_DIR ${TOOLCHAIN_PREFIX}/${TOOLCHAIN}/include)
- set(TOOLCHAIN_LIB_DIR ${TOOLCHAIN_PREFIX}/${TOOLCHAIN}/lib)
-
- # Set system depended extensions
- if(WIN32)
- set(TOOLCHAIN_EXT ".exe" )
- else()
- set(TOOLCHAIN_EXT "" )
- endif()
-
- # Perform compiler test with static library
- set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
-
- #---------------------------------------------------------------------------------------
- # Preset some general GCC Options
- #---------------------------------------------------------------------------------------
-
- # Options for DEBUG build
- # -Og enables optimizations that do not interfere with debugging
- # -g produce debugging information in the operating system’s native format
- set(CMAKE_C_FLAGS_DEBUG "-Og -g -DDEBUG" CACHE INTERNAL "C Compiler options for debug build type")
- set(CMAKE_CXX_FLAGS_DEBUG "-Og -g -DDEBUG" CACHE INTERNAL "C++ Compiler options for debug build type")
- set(CMAKE_ASM_FLAGS_DEBUG "-g" CACHE INTERNAL "ASM Compiler options for debug build type")
- set(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Linker options for debug build type")
-
- # Options for RELEASE build
- # -Os Optimize for size. -Os enables all -O2 optimizations
- set(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "C Compiler options for release build type")
- set(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "C++ Compiler options for release build type")
- set(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "ASM Compiler options for release build type")
- set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Linker options for release build type")
-
- #---------------------------------------------------------------------------------------
- # Set compilers
- #---------------------------------------------------------------------------------------
- set(CMAKE_C_COMPILER ${TOOLCHAIN_BIN_DIR}/${TOOLCHAIN}-gcc${TOOLCHAIN_EXT} CACHE INTERNAL "C Compiler")
- set(CMAKE_CXX_COMPILER ${TOOLCHAIN_BIN_DIR}/${TOOLCHAIN}-g++${TOOLCHAIN_EXT} CACHE INTERNAL "C++ Compiler")
- set(CMAKE_ASM_COMPILER ${TOOLCHAIN_BIN_DIR}/${TOOLCHAIN}-gcc${TOOLCHAIN_EXT} CACHE INTERNAL "ASM Compiler")
-
- set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_PREFIX}/${${TOOLCHAIN}} ${CMAKE_PREFIX_PATH})
- set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
- set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|