update cmake build
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
set(CMAKE_SYSTEM_NAME Generic)
|
|
||||||
|
|
||||||
if (NOT DEFINED CMAKE_C_COMPILER)
|
if (NOT DEFINED CMAKE_C_COMPILER)
|
||||||
set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
|
set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
|
||||||
endif ()
|
endif ()
|
||||||
@@ -9,44 +7,15 @@ if (NOT DEFINED CMAKE_CXX_COMPILER)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
|
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
|
||||||
|
|
||||||
set(CMAKE_SIZE "arm-none-eabi-size" CACHE FILEPATH "")
|
set(CMAKE_SIZE "arm-none-eabi-size" CACHE FILEPATH "")
|
||||||
set(CMAKE_OBJCOPY "arm-none-eabi-objcopy" CACHE FILEPATH "")
|
set(CMAKE_OBJCOPY "arm-none-eabi-objcopy" CACHE FILEPATH "")
|
||||||
set(CMAKE_OBJDUMP "arm-none-eabi-objdump" CACHE FILEPATH "")
|
set(CMAKE_OBJDUMP "arm-none-eabi-objdump" CACHE FILEPATH "")
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
|
||||||
|
|
||||||
# Look for includes and libraries only in the target system prefix.
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
|
|
||||||
# pass TOOLCHAIN_CPU to
|
|
||||||
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
|
|
||||||
|
|
||||||
# enable all possible warnings for building examples
|
|
||||||
list(APPEND TOOLCHAIN_COMMON_FLAGS
|
|
||||||
-fdata-sections
|
|
||||||
-ffunction-sections
|
|
||||||
-fsingle-precision-constant
|
|
||||||
-fno-strict-aliasing
|
|
||||||
)
|
|
||||||
|
|
||||||
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
|
||||||
-Wl,--print-memory-usage
|
|
||||||
-Wl,--gc-sections
|
|
||||||
-Wl,--cref
|
|
||||||
)
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake)
|
|
||||||
|
|
||||||
# try_compile is cmake test compiling its own example,
|
|
||||||
# pass -nostdlib to skip stdlib linking
|
|
||||||
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
|
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
|
||||||
if (IS_IN_TRY_COMPILE)
|
if (IS_IN_TRY_COMPILE)
|
||||||
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -nostdlib")
|
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -nostdlib")
|
||||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib")
|
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib")
|
||||||
|
cmake_print_variables(CMAKE_C_LINK_FLAGS)
|
||||||
endif ()
|
endif ()
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
set(CMAKE_SYSTEM_NAME Generic)
|
|
||||||
|
|
||||||
if (NOT DEFINED CMAKE_C_COMPILER)
|
if (NOT DEFINED CMAKE_C_COMPILER)
|
||||||
set(CMAKE_C_COMPILER "iccarm")
|
set(CMAKE_C_COMPILER "iccarm")
|
||||||
endif()
|
endif()
|
||||||
@@ -16,25 +14,4 @@ set(CMAKE_SIZE "size" CACHE FILEPATH "")
|
|||||||
set(CMAKE_OBJCOPY "ielftool" CACHE FILEPATH "")
|
set(CMAKE_OBJCOPY "ielftool" CACHE FILEPATH "")
|
||||||
set(CMAKE_OBJDUMP "iefdumparm" CACHE FILEPATH "")
|
set(CMAKE_OBJDUMP "iefdumparm" CACHE FILEPATH "")
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
|
||||||
|
|
||||||
# Look for includes and libraries only in the target system prefix.
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
|
|
||||||
# pass TOOLCHAIN_CPU to
|
|
||||||
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
|
|
||||||
|
|
||||||
# enable all possible warnings for building examples
|
|
||||||
list(APPEND TOOLCHAIN_COMMON_FLAGS
|
|
||||||
)
|
|
||||||
|
|
||||||
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
|
||||||
--diag_suppress=Li065
|
|
||||||
)
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake)
|
|
||||||
|
53
examples/build_system/cmake/toolchain/common.cmake
Normal file
53
examples/build_system/cmake/toolchain/common.cmake
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
include(CMakePrintHelpers)
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Common
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
set(CMAKE_SYSTEM_NAME Generic)
|
||||||
|
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
||||||
|
|
||||||
|
# Look for includes and libraries only in the target system prefix.
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
|
||||||
|
# pass TOOLCHAIN_CPU to
|
||||||
|
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Compile flags
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
if (TOOLCHAIN STREQUAL "gcc")
|
||||||
|
list(APPEND TOOLCHAIN_COMMON_FLAGS
|
||||||
|
-fdata-sections
|
||||||
|
-ffunction-sections
|
||||||
|
-fsingle-precision-constant
|
||||||
|
-fno-strict-aliasing
|
||||||
|
)
|
||||||
|
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
||||||
|
-Wl,--print-memory-usage
|
||||||
|
-Wl,--gc-sections
|
||||||
|
-Wl,--cref
|
||||||
|
)
|
||||||
|
elseif (TOOLCHAIN STREQUAL "iar")
|
||||||
|
#list(APPEND TOOLCHAIN_COMMON_FLAGS)
|
||||||
|
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
||||||
|
--diag_suppress=Li065
|
||||||
|
)
|
||||||
|
elseif (TOOLCHAIN STREQUAL "clang")
|
||||||
|
message(FATAL_ERROR "Clang not supported")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# join the toolchain flags into a single string
|
||||||
|
list(JOIN TOOLCHAIN_COMMON_FLAGS " " TOOLCHAIN_COMMON_FLAGS)
|
||||||
|
foreach (LANG IN ITEMS C CXX ASM)
|
||||||
|
set(CMAKE_${LANG}_FLAGS_INIT ${TOOLCHAIN_COMMON_FLAGS})
|
||||||
|
# optimization flags for LOG, LOGGER ?
|
||||||
|
#set(CMAKE_${LANG}_FLAGS_RELEASE_INIT "-Os")
|
||||||
|
#set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0")
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
# Linker
|
||||||
|
list(JOIN TOOLCHAIN_EXE_LINKER_FLAGS " " CMAKE_EXE_LINKER_FLAGS_INIT)
|
@@ -1,5 +1,3 @@
|
|||||||
set(CMAKE_SYSTEM_NAME Generic)
|
|
||||||
|
|
||||||
if (NOT DEFINED CMAKE_C_COMPILER)
|
if (NOT DEFINED CMAKE_C_COMPILER)
|
||||||
set(CMAKE_C_COMPILER "msp430-elf-gcc")
|
set(CMAKE_C_COMPILER "msp430-elf-gcc")
|
||||||
endif ()
|
endif ()
|
||||||
@@ -14,39 +12,4 @@ set(CMAKE_SIZE "msp430-elf-size" CACHE FILEPATH "")
|
|||||||
set(CMAKE_OBJCOPY "msp430-elf-objcopy" CACHE FILEPATH "")
|
set(CMAKE_OBJCOPY "msp430-elf-objcopy" CACHE FILEPATH "")
|
||||||
set(CMAKE_OBJDUMP "msp430-elf-objdump" CACHE FILEPATH "")
|
set(CMAKE_OBJDUMP "msp430-elf-objdump" CACHE FILEPATH "")
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
|
||||||
|
|
||||||
# Look for includes and libraries only in the target system prefix.
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
|
|
||||||
# pass TOOLCHAIN_CPU to
|
|
||||||
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
|
|
||||||
|
|
||||||
# enable all possible warnings for building examples
|
|
||||||
list(APPEND TOOLCHAIN_COMMON_FLAGS
|
|
||||||
-fdata-sections
|
|
||||||
-ffunction-sections
|
|
||||||
-fsingle-precision-constant
|
|
||||||
-fno-strict-aliasing
|
|
||||||
)
|
|
||||||
|
|
||||||
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
|
|
||||||
-Wl,--print-memory-usage
|
|
||||||
-Wl,--gc-sections
|
|
||||||
-Wl,--cref
|
|
||||||
)
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake)
|
|
||||||
|
|
||||||
# try_compile is cmake test compiling its own example,
|
|
||||||
# pass -nostdlib to skip stdlib linking
|
|
||||||
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
|
|
||||||
if (IS_IN_TRY_COMPILE)
|
|
||||||
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -nostdlib")
|
|
||||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib")
|
|
||||||
endif ()
|
|
||||||
|
@@ -1,17 +0,0 @@
|
|||||||
include(CMakePrintHelpers)
|
|
||||||
|
|
||||||
# join the toolchain flags into a single string
|
|
||||||
list(JOIN TOOLCHAIN_COMMON_FLAGS " " TOOLCHAIN_COMMON_FLAGS)
|
|
||||||
|
|
||||||
foreach (LANG IN ITEMS C CXX ASM)
|
|
||||||
set(CMAKE_${LANG}_FLAGS_INIT ${TOOLCHAIN_COMMON_FLAGS})
|
|
||||||
|
|
||||||
#cmake_print_variables(CMAKE_${LANG}_FLAGS_INIT)
|
|
||||||
|
|
||||||
# optimization flags for LOG, LOGGER ?
|
|
||||||
#set(CMAKE_${LANG}_FLAGS_RELEASE_INIT "-Os")
|
|
||||||
#set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0")
|
|
||||||
endforeach ()
|
|
||||||
|
|
||||||
# Linker
|
|
||||||
list(JOIN TOOLCHAIN_EXE_LINKER_FLAGS " " CMAKE_EXE_LINKER_FLAGS_INIT)
|
|
Reference in New Issue
Block a user