Просмотр исходного кода

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 4 лет назад
Родитель
Сommit
fefcc41ded
1 измененных файлов с 12 добавлено и 6 удалено
  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()
 endforeach()
 list(REMOVE_DUPLICATES STM32_SUPPORTED_FAMILIES_SHORT_NAME)
 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 STM32_TOOLCHAIN_PATH)
     if(NOT CMAKE_C_COMPILER)
     if(NOT CMAKE_C_COMPILER)
         set(STM32_TOOLCHAIN_PATH "/usr")
         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_INC_PATH "${STM32_TOOLCHAIN_PATH}/${STM32_TARGET_TRIPLET}/include")
 set(TOOLCHAIN_LIB_PATH "${STM32_TOOLCHAIN_PATH}/${STM32_TARGET_TRIPLET}/lib")
 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)
 function(stm32_print_size_of_target TARGET)
     add_custom_target(${TARGET}_always_display_size
     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)
     get_target_property(LINK_DEPENDS ${TARGET} ${INTERFACE_PREFIX}LINK_DEPENDS)
     if(LINK_DEPENDS)
     if(LINK_DEPENDS)
-        list(APPEND LINK_DEPENDS "${SCRIPT}")        
+        list(APPEND LINK_DEPENDS "${SCRIPT}")
     else()
     else()
         set(LINK_DEPENDS "${SCRIPT}")
         set(LINK_DEPENDS "${SCRIPT}")
     endif()
     endif()