summaryrefslogtreecommitdiff
path: root/tools/cmake_toolchain_files
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2016-01-12 14:06:54 -0800
committerStefan Agner <stefan.agner@toradex.com>2016-01-12 14:06:54 -0800
commita57cc2c988482010061b9e68344fdf1969889763 (patch)
tree5c050337492ce27c09b47421b123980b5a79f8d9 /tools/cmake_toolchain_files
initial commit, FreeRTOS_BSP_1.0.0_iMX7D
Diffstat (limited to 'tools/cmake_toolchain_files')
-rw-r--r--tools/cmake_toolchain_files/armgcc.cmake68
-rw-r--r--tools/cmake_toolchain_files/armgcc_force_cpp.cmake68
2 files changed, 136 insertions, 0 deletions
diff --git a/tools/cmake_toolchain_files/armgcc.cmake b/tools/cmake_toolchain_files/armgcc.cmake
new file mode 100644
index 0000000..c1a8dc7
--- /dev/null
+++ b/tools/cmake_toolchain_files/armgcc.cmake
@@ -0,0 +1,68 @@
+INCLUDE(CMakeForceCompiler)
+
+# TOOLCHAIN EXTENSION
+IF(WIN32)
+ SET(TOOLCHAIN_EXT ".exe")
+ELSE()
+ SET(TOOLCHAIN_EXT "")
+ENDIF()
+
+# EXECUTABLE EXTENSION
+SET (CMAKE_EXECUTABLE_SUFFIX ".elf")
+
+# CMAKE_BUILD_TYPE
+IF(NOT CMAKE_BUILD_TYPE MATCHES Debug)
+ SET (CMAKE_BUILD_TYPE Release)
+ENDIF()
+
+# TOOLCHAIN_DIR AND NANO LIBRARY
+SET(TOOLCHAIN_DIR $ENV{ARMGCC_DIR})
+STRING(REGEX REPLACE "\\\\" "/" TOOLCHAIN_DIR "${TOOLCHAIN_DIR}")
+
+IF(NOT TOOLCHAIN_DIR)
+ MESSAGE(FATAL_ERROR "***Please set ARMGCC_DIR in envionment variables***")
+ENDIF()
+
+MESSAGE(STATUS "TOOLCHAIN_DIR: " ${TOOLCHAIN_DIR})
+
+# TARGET_TRIPLET
+SET(TARGET_TRIPLET "arm-none-eabi")
+
+SET(TOOLCHAIN_BIN_DIR ${TOOLCHAIN_DIR}/bin)
+SET(TOOLCHAIN_INC_DIR ${TOOLCHAIN_DIR}/${TARGET_TRIPLET}/include)
+SET(TOOLCHAIN_LIB_DIR ${TOOLCHAIN_DIR}/${TARGET_TRIPLET}/lib)
+
+SET(CMAKE_SYSTEM_NAME Generic)
+SET(CMAKE_SYSTEM_PROCESSOR arm)
+
+CMAKE_FORCE_C_COMPILER(${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-gcc${TOOLCHAIN_EXT} GNU)
+CMAKE_FORCE_CXX_COMPILER(${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-g++${TOOLCHAIN_EXT} GNU)
+SET(CMAKE_ASM_COMPILER ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-gcc${TOOLCHAIN_EXT})
+
+SET(CMAKE_OBJCOPY ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-objcopy CACHE INTERNAL "objcopy tool")
+SET(CMAKE_OBJDUMP ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-objdump CACHE INTERNAL "objdump tool")
+
+SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g" CACHE INTERNAL "c compiler flags debug")
+SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g" CACHE INTERNAL "cxx compiler flags debug")
+SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g" CACHE INTERNAL "asm compiler flags debug")
+SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" CACHE INTERNAL "linker flags debug")
+
+SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 " CACHE INTERNAL "c compiler flags release")
+SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 " CACHE INTERNAL "cxx compiler flags release")
+SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE}" CACHE INTERNAL "asm compiler flags release")
+SET(CMAKE_EXE_LINKER_FLAGS_RELESE "${CMAKE_EXE_LINKER_FLAGS_RELESE}" CACHE INTERNAL "linker flags release")
+
+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 ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+IF(CMAKE_BUILD_TYPE MATCHES Release)
+ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/release)
+ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/release)
+ELSEIF(CMAKE_BUILD_TYPE MATCHES Debug)
+ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/debug)
+ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/debug)
+ENDIF()
+
+MESSAGE(STATUS "BUILD_TYPE: " ${CMAKE_BUILD_TYPE})
diff --git a/tools/cmake_toolchain_files/armgcc_force_cpp.cmake b/tools/cmake_toolchain_files/armgcc_force_cpp.cmake
new file mode 100644
index 0000000..5100b60
--- /dev/null
+++ b/tools/cmake_toolchain_files/armgcc_force_cpp.cmake
@@ -0,0 +1,68 @@
+INCLUDE(CMakeForceCompiler)
+
+# TOOLCHAIN EXTENSION
+IF(WIN32)
+ SET(TOOLCHAIN_EXT ".exe")
+ELSE()
+ SET(TOOLCHAIN_EXT "")
+ENDIF()
+
+# EXECUTABLE EXTENSION
+SET (CMAKE_EXECUTABLE_SUFFIX ".elf")
+
+# CMAKE_BUILD_TYPE
+IF(NOT CMAKE_BUILD_TYPE MATCHES Debug)
+ SET (CMAKE_BUILD_TYPE Release)
+ENDIF()
+
+# TOOLCHAIN_DIR AND NANO LIBRARY
+SET(TOOLCHAIN_DIR $ENV{ARMGCC_DIR})
+STRING(REGEX REPLACE "\\\\" "/" TOOLCHAIN_DIR "${TOOLCHAIN_DIR}")
+
+IF(NOT TOOLCHAIN_DIR)
+ MESSAGE(FATAL_ERROR "***Please set ARMGCC_DIR in envionment variables***")
+ENDIF()
+
+MESSAGE(STATUS "TOOLCHAIN_DIR: " ${TOOLCHAIN_DIR})
+
+# TARGET_TRIPLET
+SET(TARGET_TRIPLET "arm-none-eabi")
+
+SET(TOOLCHAIN_BIN_DIR ${TOOLCHAIN_DIR}/bin)
+SET(TOOLCHAIN_INC_DIR ${TOOLCHAIN_DIR}/${TARGET_TRIPLET}/include)
+SET(TOOLCHAIN_LIB_DIR ${TOOLCHAIN_DIR}/${TARGET_TRIPLET}/lib)
+
+SET(CMAKE_SYSTEM_NAME Generic)
+SET(CMAKE_SYSTEM_PROCESSOR arm)
+
+CMAKE_FORCE_C_COMPILER(${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-g++${TOOLCHAIN_EXT} GNU)
+CMAKE_FORCE_CXX_COMPILER(${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-g++${TOOLCHAIN_EXT} GNU)
+SET(CMAKE_ASM_COMPILER ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-gcc${TOOLCHAIN_EXT})
+
+SET(CMAKE_OBJCOPY ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-objcopy CACHE INTERNAL "objcopy tool")
+SET(CMAKE_OBJDUMP ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-objdump CACHE INTERNAL "objdump tool")
+
+SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g" CACHE INTERNAL "c compiler flags debug")
+SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g" CACHE INTERNAL "cxx compiler flags debug")
+SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g" CACHE INTERNAL "asm compiler flags debug")
+SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" CACHE INTERNAL "linker flags debug")
+
+SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 " CACHE INTERNAL "c compiler flags release")
+SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 " CACHE INTERNAL "cxx compiler flags release")
+SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE}" CACHE INTERNAL "asm compiler flags release")
+SET(CMAKE_EXE_LINKER_FLAGS_RELESE "${CMAKE_EXE_LINKER_FLAGS_RELESE}" CACHE INTERNAL "linker flags release")
+
+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 ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+IF(CMAKE_BUILD_TYPE MATCHES Release)
+ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/release)
+ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/release)
+ELSEIF(CMAKE_BUILD_TYPE MATCHES Debug)
+ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/debug)
+ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/debug)
+ENDIF()
+
+MESSAGE(STATUS "BUILD_TYPE: " ${CMAKE_BUILD_TYPE})