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

Changed STM32_SUPPORTED_FAMILIES to list of STM32<family>

Hish15 5 лет назад
Родитель
Сommit
18e0c8ae50
4 измененных файлов с 20 добавлено и 27 удалено
  1. 1 3
      cmake/FindBSP.cmake
  2. 1 4
      cmake/FindCMSIS.cmake
  3. 5 7
      cmake/FindHAL.cmake
  4. 13 13
      cmake/stm32/common.cmake

+ 1 - 3
cmake/FindBSP.cmake

@@ -219,9 +219,7 @@ set(BSP_L4_DEVICE_STM32L476G_Discovery L476VG)
 set(BSP_L4_DEVICE_STM32L496G_Discovery L496AG)
 
 if(NOT BSP_FIND_COMPONENTS)
-    foreach(FAMILY ${STM32_SUPPORTED_FAMILIES})
-        list(APPEND BSP_FIND_COMPONENTS STM32${FAMILY})
-    endforeach()
+    set(BSP_FIND_COMPONENTS ${STM32_SUPPORTED_FAMILIES_LONG_NAME})
 endif()
 
 if(STM32H7 IN_LIST BSP_FIND_COMPONENTS)

+ 1 - 4
cmake/FindCMSIS.cmake

@@ -1,8 +1,5 @@
 if(NOT CMSIS_FIND_COMPONENTS)
-    foreach(FAMILY ${STM32_SUPPORTED_FAMILIES})
-        list(APPEND CMSIS_FIND_COMPONENTS STM32${FAMILY})
-    endforeach()
-
+    set(CMSIS_FIND_COMPONENTS ${STM32_SUPPORTED_FAMILIES_LONG_NAME})
 endif()
 if(STM32H7 IN_LIST CMSIS_FIND_COMPONENTS)
     list(REMOVE_ITEM CMSIS_FIND_COMPONENTS STM32H7)

+ 5 - 7
cmake/FindHAL.cmake

@@ -157,10 +157,9 @@ set(HAL_LL_DRIVERS_L4
     rcc rng rtc sdmmc spi swpmi tim usart usb utils
 )
 
-foreach(FAMILY ${STM32_SUPPORTED_FAMILIES})
-    string(REGEX MATCH "^([A-Z][0-9])_?(M[47])?" FAMILY ${FAMILY})
-    list(APPEND HAL_DRIVERS ${HAL_DRIVERS_${CMAKE_MATCH_1}})
-    list(APPEND HAL_LL_DRIVERS ${HAL_LL_DRIVERS_${CMAKE_MATCH_1}})
+foreach(FAMILY_SUFFIX ${STM32_SUPPORTED_FAMILIES_SHORT_NAME})
+    list(APPEND HAL_DRIVERS ${HAL_DRIVERS_${FAMILY_SUFFIX}})
+    list(APPEND HAL_LL_DRIVERS ${HAL_LL_DRIVERS_${FAMILY_SUFFIX}})
 endforeach()
 list(REMOVE_DUPLICATES HAL_DRIVERS)
 list(REMOVE_DUPLICATES HAL_LL_DRIVERS)
@@ -187,10 +186,9 @@ foreach(COMP ${HAL_FIND_COMPONENTS})
 endforeach()
 
 if(NOT HAL_FIND_COMPONENTS_FAMILIES)
-    foreach(FAMILY ${STM32_SUPPORTED_FAMILIES})
-        list(APPEND HAL_FIND_COMPONENTS_FAMILIES STM32${FAMILY})
-    endforeach()
+    set(HAL_FIND_COMPONENTS_FAMILIES ${STM32_SUPPORTED_FAMILIES_LONG_NAME})
 endif()
+
 if(STM32H7 IN_LIST HAL_FIND_COMPONENTS_FAMILIES)
     list(REMOVE_ITEM HAL_FIND_COMPONENTS_FAMILIES STM32H7)
     list(APPEND HAL_FIND_COMPONENTS_FAMILIES STM32H7_M7 STM32H7_M4)

+ 13 - 13
cmake/stm32/common.cmake

@@ -1,8 +1,14 @@
-set(STM32_SUPPORTED_FAMILIES
-    F0 F1 F2 F3 F4 F7
-    G0 G4
-    H7_M4 H7_M7
-    L0 L1 L4)
+set(STM32_SUPPORTED_FAMILIES_LONG_NAME
+    STM32F0 STM32F1 STM32F2 STM32F3 STM32F4 STM32F7
+    STM32G0 STM32G4
+    STM32H7_M4 STM32H7_M7
+    STM32L0 STM32L1 STM32L4)
+
+foreach(FAMILY ${STM32_SUPPORTED_FAMILIES_LONG_NAME})
+    string(REGEX MATCH "^STM32([A-Z][0-9])_?(M[47])?" FAMILY ${FAMILY})
+    list(APPEND STM32_SUPPORTED_FAMILIES_SHORT_NAME ${CMAKE_MATCH_1})
+endforeach()
+list(REMOVE_DUPLICATES STM32_SUPPORTED_FAMILIES_SHORT_NAME)
 
 if(NOT STM32_TOOLCHAIN_PATH)
      set(STM32_TOOLCHAIN_PATH "/usr")
@@ -62,16 +68,10 @@ function(stm32_get_chip_info CHIP)
     set(STM32_FAMILY ${CMAKE_MATCH_1})
     set(STM32_DEVICE "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
 
-    foreach(FAMILY_CANDIDATE ${STM32_SUPPORTED_FAMILIES})
-        string(REGEX MATCH "^([A-Z][0-9])_?(M[47])?" FAMILY_CANDIDATE ${FAMILY})
-        if(${STM32_FAMILY} EQUAL ${CMAKE_MATCH_1})
-            set(IS_VALID_FAMILY TRUE)
-        endif()
-    endforeach()
-    if (NOT IS_VALID_FAMILY)
+
+    if(NOT (${STM32_FAMILY} IN_LIST STM32_SUPPORTED_FAMILIES_SHORT_NAME))
         message(FATAL_ERROR "Unsupported family ${STM32_FAMILY} for device ${CHIP}")
     endif()
-    unset(IS_VALID_FAMILY)
 
     stm32_get_chip_type(${STM32_FAMILY} ${STM32_DEVICE} STM32_TYPE)