Explorar o código

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 <cross-compile>-gcc/g++
Robin Mueller %!s(int64=4) %!d(string=hai) anos
pai
achega
fefcc41ded
Modificáronse 1 ficheiros con 12 adicións e 6 borrados
  1. 12 6
      cmake/stm32/common.cmake

+ 12 - 6
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()