From fefcc41dedc03958d63a83b008ee4e09ed484678 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 11 Jul 2021 23:33:56 +0200 Subject: [PATCH 1/2] Toolchain file update 1. Use STM32_TOOLCHAIN_PATH if specified as environmental variable 2. Find tools like objcopy and size in default paths as well, which allows simply adding the binary folder of the toolchain to the path to find them. This also allows more consistent behaviour, because this already works for -gcc/g++ --- cmake/stm32/common.cmake | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cmake/stm32/common.cmake b/cmake/stm32/common.cmake index cd0b3cd9..0c96d5a4 100644 --- a/cmake/stm32/common.cmake +++ b/cmake/stm32/common.cmake @@ -10,6 +10,12 @@ foreach(FAMILY ${STM32_SUPPORTED_FAMILIES_LONG_NAME}) endforeach() list(REMOVE_DUPLICATES STM32_SUPPORTED_FAMILIES_SHORT_NAME) +if(DEFINED ENV{STM32_TOOLCHAIN_PATH}) + message(STATUS "Detected toolchain path STM32_TOOLCHAIN_PATH in environmental variables: ") + message(STATUS "$ENV{STM32_TOOLCHAIN_PATH}") + set(STM32_TOOLCHAIN_PATH $ENV{STM32_TOOLCHAIN_PATH}) +endif() + if(NOT STM32_TOOLCHAIN_PATH) if(NOT CMAKE_C_COMPILER) set(STM32_TOOLCHAIN_PATH "/usr") @@ -36,11 +42,11 @@ set(TOOLCHAIN_BIN_PATH "${STM32_TOOLCHAIN_PATH}/bin") set(TOOLCHAIN_INC_PATH "${STM32_TOOLCHAIN_PATH}/${STM32_TARGET_TRIPLET}/include") set(TOOLCHAIN_LIB_PATH "${STM32_TOOLCHAIN_PATH}/${STM32_TARGET_TRIPLET}/lib") -find_program(CMAKE_OBJCOPY NAMES ${STM32_TARGET_TRIPLET}-objcopy PATHS ${TOOLCHAIN_BIN_PATH} NO_DEFAULT_PATH) -find_program(CMAKE_OBJDUMP NAMES ${STM32_TARGET_TRIPLET}-objdump PATHS ${TOOLCHAIN_BIN_PATH} NO_DEFAULT_PATH) -find_program(CMAKE_SIZE NAMES ${STM32_TARGET_TRIPLET}-size PATHS ${TOOLCHAIN_BIN_PATH} NO_DEFAULT_PATH) -find_program(CMAKE_DEBUGGER NAMES ${STM32_TARGET_TRIPLET}-gdb PATHS ${TOOLCHAIN_BIN_PATH} NO_DEFAULT_PATH) -find_program(CMAKE_CPPFILT NAMES ${STM32_TARGET_TRIPLET}-c++filt PATHS ${TOOLCHAIN_BIN_PATH} NO_DEFAULT_PATH) +find_program(CMAKE_OBJCOPY NAMES ${STM32_TARGET_TRIPLET}-objcopy PATHS ${TOOLCHAIN_BIN_PATH}) +find_program(CMAKE_OBJDUMP NAMES ${STM32_TARGET_TRIPLET}-objdump PATHS ${TOOLCHAIN_BIN_PATH}) +find_program(CMAKE_SIZE NAMES ${STM32_TARGET_TRIPLET}-size PATHS ${TOOLCHAIN_BIN_PATH}) +find_program(CMAKE_DEBUGGER NAMES ${STM32_TARGET_TRIPLET}-gdb PATHS ${TOOLCHAIN_BIN_PATH}) +find_program(CMAKE_CPPFILT NAMES ${STM32_TARGET_TRIPLET}-c++filt PATHS ${TOOLCHAIN_BIN_PATH}) function(stm32_print_size_of_target TARGET) add_custom_target(${TARGET}_always_display_size @@ -264,7 +270,7 @@ function(stm32_add_linker_script TARGET VISIBILITY SCRIPT) get_target_property(LINK_DEPENDS ${TARGET} ${INTERFACE_PREFIX}LINK_DEPENDS) if(LINK_DEPENDS) - list(APPEND LINK_DEPENDS "${SCRIPT}") + list(APPEND LINK_DEPENDS "${SCRIPT}") else() set(LINK_DEPENDS "${SCRIPT}") endif() From 2081093a1351957d04bfff05218311fa56c8b3a9 Mon Sep 17 00:00:00 2001 From: Spacefish <31589589+rmspacefish@users.noreply.github.com> Date: Thu, 15 Jul 2021 17:05:37 +0200 Subject: [PATCH 2/2] Update cmake/stm32/common.cmake Co-authored-by: Julien Staub --- cmake/stm32/common.cmake | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/cmake/stm32/common.cmake b/cmake/stm32/common.cmake index 0c96d5a4..fa22d83b 100644 --- a/cmake/stm32/common.cmake +++ b/cmake/stm32/common.cmake @@ -10,13 +10,12 @@ foreach(FAMILY ${STM32_SUPPORTED_FAMILIES_LONG_NAME}) endforeach() list(REMOVE_DUPLICATES STM32_SUPPORTED_FAMILIES_SHORT_NAME) -if(DEFINED ENV{STM32_TOOLCHAIN_PATH}) - message(STATUS "Detected toolchain path STM32_TOOLCHAIN_PATH in environmental variables: ") - message(STATUS "$ENV{STM32_TOOLCHAIN_PATH}") - set(STM32_TOOLCHAIN_PATH $ENV{STM32_TOOLCHAIN_PATH}) -endif() - if(NOT STM32_TOOLCHAIN_PATH) + if(DEFINED ENV{STM32_TOOLCHAIN_PATH}) + message(STATUS "Detected toolchain path STM32_TOOLCHAIN_PATH in environmental variables: ") + message(STATUS "$ENV{STM32_TOOLCHAIN_PATH}") + set(STM32_TOOLCHAIN_PATH $ENV{STM32_TOOLCHAIN_PATH}) + endif() if(NOT CMAKE_C_COMPILER) set(STM32_TOOLCHAIN_PATH "/usr") message(STATUS "No STM32_TOOLCHAIN_PATH specified, using default: " ${STM32_TOOLCHAIN_PATH}) @@ -319,4 +318,3 @@ include(stm32/l0) include(stm32/l1) include(stm32/l4) include(stm32/l5) -