FindBSP.cmake 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. set(BSP_F0_BOARDS
  2. STM32F0xx_Nucleo_32 STM32F0xx-Nucleo STM32F072B-Discovery
  3. STM32F0308-Discovery STM32072B_EVAL STM32091C_EVAL
  4. )
  5. set(BSP_F0_COMPONENTS
  6. hx8347d l3gd20 spfd5408 st7735 stlm75
  7. )
  8. set(BSP_F0_SOURCES_STM32F072B_Discovery eeprom gyroscope)
  9. set(BSP_F0_SOURCES_STM32072B_EVAL eeprom lcd sd tsensor)
  10. set(BSP_F0_SOURCES_STM32091C_EVAL eeprom lcd sd tsensor)
  11. set(BSP_F0_DEVICE_STM32F072B_Discovery F072RB)
  12. set(BSP_F0_DEVICE_STM32F0308_Discovery F030R8)
  13. set(BSP_F0_DEVICE_STM32072B_EVAL F072VB)
  14. set(BSP_F0_DEVICE_STM32091C_EVAL F091VC)
  15. set(BSP_F1_BOARDS
  16. STM32F1xx_Nucleo STM32VL-Discovery STM3210C_EVAL STM3210E_EVAL
  17. )
  18. set(BSP_F1_COMPONENTS
  19. ak4343 cs43l22 hx8347d ili9320 ili9325 lis302dl spfd5408 st7735 stlm75
  20. stmpe811
  21. )
  22. set(BSP_F1_SOURCES_STM3210C_EVAL accelerometer audio eeprom io lcd sd ts)
  23. set(BSP_F1_SOURCES_STM3210E_EVAL audio lcd nand nor sd serialflash sram tsensor)
  24. set(BSP_F1_DEVICE_STM32VL_Discovery F100RB)
  25. set(BSP_F1_DEVICE_STM3210C_EVAL F107VC)
  26. set(BSP_F1_DEVICE_STM3210E_EVAL F103ZE)
  27. set(BSP_F2_BOARDS
  28. STM32F2xx_Nucleo_144 STM322xG_EVAL
  29. )
  30. set(BSP_F2_COMPONENTS
  31. cs43l22 ili9320 ili9325 ili9341 ov2640 st7735 stmpe811
  32. )
  33. set(BSP_F2_SOURCES_STM322xG_EVAL audio camera eeprom io lcd sd sram ts)
  34. set(BSP_F2_DEVICE_STM322xG_EVAL F207IG)
  35. set(BSP_F3_BOARDS
  36. STM32F3-Discovery STM32F3xx_Nucleo_32 STM32F3xx_Nucleo_144 STM32F3xx-Nucleo
  37. STM32F3348-Discovery STM32303C_EVAL STM32303E_EVAL STM32373C_EVAL
  38. )
  39. set(BSP_F3_COMPONENTS
  40. cs42l52 cs43l22 hx8347d hx8347g hx8347i ili9320 ili9325 ili9328 l3gd20
  41. lsm303dlhc spfd5408 st7735 stts751
  42. )
  43. set(BSP_F3_SOURCES_STM32F3_Discovery accelerometer gyroscope)
  44. set(BSP_F3_SOURCES_STM32303C_EVAL audio eeprom lcd sd tsensor)
  45. set(BSP_F3_SOURCES_STM32303E_EVAL audio eeprom lcd sd tsensor)
  46. set(BSP_F3_SOURCES_STM32373C_EVAL audio eeprom lcd sd tsensor)
  47. set(BSP_F3_DEVICE_STM32F3_Discovery F303VC)
  48. set(BSP_F3_DEVICE_STM32F3348_Discovery F334C8)
  49. set(BSP_F3_DEVICE_STM32303C_EVAL F303VC)
  50. set(BSP_F3_DEVICE_STM32303E_EVAL F303VE)
  51. set(BSP_F3_DEVICE_STM32373C_EVAL F373VC)
  52. set(BSP_F4_BOARDS
  53. STM32F4-Discovery STM32F4xx_Nucleo_144 STM32F4xx-Nucleo STM32F401-Discovery
  54. STM32F411E-Discovery STM32F413H-Discovery STM32F429I-Discovery
  55. STM324x9I_EVAL STM324xG_EVAL STM32412G-Discovery STM32446E_EVAL
  56. STM32469I_EVAL STM32469I-Discovery
  57. )
  58. set(BSP_F4_COMPONENTS
  59. ampire480272 ampire640480 cs43l22 exc7200 ft6x06 ili9325 ili9341 l3gd20
  60. lis3dsh lis302dl ls016b8uy lsm303dlhc mfxstm32l152 n25q128a n25q256a
  61. n25q512a otm8009a ov2640 s5k5cag s25fl512s st7735 st7789h2 stmpe811
  62. stmpe1600 ts3510 wm8994
  63. )
  64. set(BSP_F4_SOURCES_STM32F4_Discovery accelerometer audio)
  65. set(BSP_F4_SOURCES_STM32F401_Discovery accelerometer audio gyroscope)
  66. set(BSP_F4_SOURCES_STM32F411E_Discovery accelerometer audio gyroscope)
  67. set(BSP_F4_SOURCES_STM32F413H_Discovery audio lcd psram qspi sd ts)
  68. set(BSP_F4_SOURCES_STM32F429I_Discovery eeprom gyroscope io lcd sdram ts)
  69. set(BSP_F4_SOURCES_STM324x9I_EVAL audio camera eeprom io lcd nor sd sdram sram ts)
  70. set(BSP_F4_SOURCES_STM324xG_EVAL audio camera eeprom io lcd sd sram ts)
  71. set(BSP_F4_SOURCES_STM32412G_Discovery audio eeprom lcd qspi sd ts)
  72. set(BSP_F4_SOURCES_STM3232446E_EVAL audio camera eeprom io lcd qspi sd sdram ts)
  73. set(BSP_F4_SOURCES_STM32469I_EVAL audio camera eeprom io lcd nor qspi sd sdram sram ts)
  74. set(BSP_F4_SOURCES_STM32469I_Discovery audio eeprom lcd qspi sd sdram ts)
  75. set(BSP_F4_DEVICE_STM32F4_Discovery F407VG)
  76. set(BSP_F4_DEVICE_STM32F401_Discovery F401VC)
  77. set(BSP_F4_DEVICE_STM32F411E_Discovery F411VE)
  78. set(BSP_F4_DEVICE_STM32F413H_Discovery F413ZH)
  79. set(BSP_F4_DEVICE_STM32F429I_Discovery F429ZI)
  80. set(BSP_F4_DEVICE_STM324x9I_EVAL F429NI)
  81. set(BSP_F4_DEVICE_STM324xG_EVAL F407IG)
  82. set(BSP_F4_DEVICE_STM32412G_Discovery F412ZG)
  83. set(BSP_F4_DEVICE_STM32446E_EVAL F446ZE)
  84. set(BSP_F4_DEVICE_STM32469I_EVAL F469NI)
  85. set(BSP_F4_DEVICE_STM32469I_Discovery F469NI)
  86. set(BSP_F7_BOARDS
  87. STM32F7xx_Nucleo_144 STM32F723E-Discovery STM32F769I_EVAL
  88. STM32F769I-Discovery STM32F7308-Discovery STM32F7508-Discovery
  89. STM32746G-Discovery STM32756G_EVAL
  90. )
  91. set(BSP_F7_COMPONENTS
  92. adv7533 ampire480272 ampire640480 exc7200 ft6x06 ft5336 mfxstm32l152
  93. mx25l512 n25q128a n25q512a otm8009a ov5640 ov9655 rk043fn48h s5k5cag st7735
  94. st7789h2 stmpe811 ts3510 wm8994
  95. )
  96. set(BSP_F7_SOURCES_STM32F723E_Discovery audio lcd psram qspi ts)
  97. set(BSP_F7_SOURCES_STM32F769I_EVAL audio camera eeprom io lcd nor qspi sd sdram sram ts)
  98. set(BSP_F7_SOURCES_STM32F769I_Discovery audio eeprom lcd qspi sd sdram ts)
  99. set(BSP_F7_SOURCES_STM32F7308_Discovery audio lcd psram qspi ts)
  100. set(BSP_F7_SOURCES_STM32F7508_Discovery audio camera eeprom lcd qspi sd sdram ts)
  101. set(BSP_F7_SOURCES_STM32746G_Discovery audio camera eeprom lcd qspi sd sdram ts)
  102. set(BSP_F7_SOURCES_STM32756G_EVAL audio camera eeprom io lcd nor qspi sd sdram sram ts)
  103. set(BSP_F7_DEVICE_STM32F723E_Discovery F723IE)
  104. set(BSP_F7_DEVICE_STM32F769I_EVAL F769NI)
  105. set(BSP_F7_DEVICE_STM32F769I_Discovery F769NI)
  106. set(BSP_F7_DEVICE_STM32F7308_Discovery F730I8)
  107. set(BSP_F7_DEVICE_STM32F7508_Discovery F750N8)
  108. set(BSP_F7_DEVICE_STM32746G_Discovery F746NG)
  109. set(BSP_F7_DEVICE_STM32756G_EVAL F756NG)
  110. set(BSP_G0_BOARDS
  111. STM32G0xx_Nucleo STM32G0xx_Nucleo_32 STM32G071B-Discovery STM32G081B_EVAL
  112. STM32G0316-Discovery
  113. )
  114. set(BSP_G0_COMPONENTS
  115. hx8347d ina230 sn65dp141 ssd1315 st7735 stlm75 tusb546
  116. )
  117. set(BSP_G0_DIR_STM32G0316_Discovery STM32G0316-DISCO)
  118. set(BSP_G0_SOURCES_STM32G071B_Discovery lcd pwr pwrmon)
  119. set(BSP_G0_SOURCES_STM32G081B_EVAL lcd mux pwr sd tsensor)
  120. set(BSP_G0_DEVICE_STM32G071B_Discovery G071RB)
  121. set(BSP_G0_DEVICE_STM32G081B_EVAL G081RB)
  122. set(BSP_G0_DEVICE_STM32G0316_Discovery G031J6)
  123. set(BSP_G4_BOARDS
  124. B-G474E-DPOW1 STM32G4xx_Nucleo STM32G474E-EVAL
  125. )
  126. set(BSP_G4_COMPONENTS
  127. hx8347d mfxstm32l152 mt25ql512abb st7735 stts751 wm8994
  128. )
  129. set(BSP_G4_SOURCES_B-G474E-DPOW1 usbpd_pwr)
  130. set(BSP_G4_SOURCES_STM32G481B_EVAL audio bus env_sensor idd io lcd qspi sd smartcard sram usbpd_pwr)
  131. set(BSP_G4_DEVICE_B_G474E_DPOW1 G474RE)
  132. set(BSP_G4_DEVICE_STM32G474E_EVAL G474QE)
  133. set(BSP_H7_BOARDS
  134. STM32H7B3I-Discovery STM32H7B3I-EVAL STM32H7xx_Nucleo STM32H743I-EVAL
  135. STM32H745I-Discovery STM32H747I-Discovery STM32H747I-EVAL
  136. STM32H750B-Discovery
  137. )
  138. set(BSP_H7_COMPONENTS
  139. adv7533 ampire480272 ampire640480 cs42l51 es_wifi exc7200 ft6x06 ft5336
  140. is42s16800j is42s32800g is42s32800j lan8742 m24lr64 mfxstm32l152
  141. mt25tl01g mt48lc4m32b2 mx25lm51245g otm8009a ov5640 ov9655 rk043fn48h
  142. rk070er9427 s5k5cag st7735 stmpe811 ts3510 wm8994
  143. )
  144. set(BSP_H7_DIR_STM32H7B3I_Discovery STM32H7B3I-DK)
  145. set(BSP_H7_DIR_STM32H745I_Discovery STM32H745I-DISCO)
  146. set(BSP_H7_DIR_STM32H747I_Discovery STM32H747I-DISCO)
  147. set(BSP_H7_DIR_STM32H750B_Discovery STM32H750B-DK)
  148. set(BSP_H7_SOURCES_STM32H7B3I_Discovery audio bus camera eeprom lcd ospi sd sdram ts)
  149. set(BSP_H7_SOURCES_STM32H7B3I_EVAL audio bus camera eeprom io lcd nor ospi sd sdram sram ts)
  150. set(BSP_H7_SOURCES_STM32H743I_EVAL audio bus eeprom io lcd nor qspi sd sdram sram ts)
  151. set(BSP_H7_SOURCES_STM32H745I_Discovery audio bus lcd mmc qspi sdram ts)
  152. set(BSP_H7_SOURCES_STM32H747I_Discovery audio bus camera lcd qspi sd sdram ts)
  153. set(BSP_H7_SOURCES_STM32H747I_EVAL audio bus eeprom io lcd nor qspi sd sdram sram ts)
  154. set(BSP_H7_SOURCES_STM32H750B_Discovery audio bus lcd mmc qspi sdram ts)
  155. set(BSP_H7_DEVICE_STM32H7B3I_Discovery H7B3LI)
  156. set(BSP_H7_DEVICE_STM32H7B3I_EVAL H7B3LI)
  157. set(BSP_H7_DEVICE_STM32H743I_EVAL H743XI)
  158. set(BSP_H7_DEVICE_STM32H745I_Discovery H745XI)
  159. set(BSP_H7_DEVICE_STM32H747I_Discovery H747XI)
  160. set(BSP_H7_DEVICE_STM32H747I_EVAL H743XI)
  161. set(BSP_H7_DEVICE_STM32H750B_Discovery H750XB)
  162. set(BSP_L0_BOARDS
  163. STM32L0xx_Nucleo STM32L0xx_Nucleo_32 STM32L073Z_EVAL STM32L0538-Discovery
  164. )
  165. set(BSP_L0_COMPONENTS
  166. gde021a1 hx8347d mfxstm32l152 st7735 stlm75
  167. )
  168. set(BSP_L0_SOURCES_STM32L073Z_EVAL eeprom glass_lcd idd io lcd sd tsensor)
  169. set(BSP_L0_SOURCES_STM32L0538_Discovery epd)
  170. set(BSP_L0_DEVICE_STM32L073Z_EVAL L073VZ)
  171. set(BSP_L0_DEVICE_STM32L0538_Discovery L053C8)
  172. set(BSP_L1_BOARDS
  173. STM32L1xx_Nucleo STM32L100C-Discovery STM32L152C-Discovery STM32L152D_EVAL
  174. )
  175. set(BSP_L1_COMPONENTS
  176. cs43l22 hx8347d ili9320 ili9325 spfd5408 st7735 stlm75
  177. )
  178. set(BSP_L1_SOURCES_STM32L152C_Discovery glass_lcd)
  179. set(BSP_L1_SOURCES_STM32L152D_EVAL audio eeprom audio glass_lcd lcd nor sd sram tsensor)
  180. set(BSP_L1_DEVICE_STM32L100C_Discovery L100RC)
  181. set(BSP_L1_DEVICE_STM32L152C_Discovery L152RC)
  182. set(BSP_L1_DEVICE_STM32L152D_EVAL L152ZD)
  183. set(BSP_L4_BOARDS
  184. STM32L475E-IOT01 STM32L4P5G-Discovery STM32L4R9I_EVAL STM32L4R9I-Discovery
  185. STM32L4xx_Nucleo STM32L4xx_Nucleo_32 STM32L4xx_Nucleo_144 STM32L476G_EVAL
  186. STM32L476G-Discovery STM32L496G-Discovery
  187. )
  188. set(BSP_L4_COMPONENTS
  189. cs42l51 cs43l22 cy8c4014lqi ft3x67 ft6x06 ft5336 hts221 hx8347g hx8347i
  190. iss66wvh8m8 l3gd20 lis3mdl lps22hb ls016b8uy lsm6dsl lsm303c lsm303dlhc
  191. m24sr mfxstm32l152 mx25lm51245g mx25r6435f n25q128a n25q256a ov9655
  192. rk043fn48h st7735 st7789h2 stmpe811 stmpe1600 wm8994
  193. )
  194. set(BSP_L4_SOURCES_B_L475E_IOT01 accelerometer gyro hsensor magneto psensor qspi tsensor iot01)
  195. set(BSP_L4_SOURCES_STM32L4P5G_Discovery idd io lcd mmc ospi_nor psram ts)
  196. set(BSP_L4_SOURCES_STM32L4R9I_EVAL audio dsi_lcd dsi_ts eeprom idd io nor ospi_nor ospi_ram rgb_ts sd sram)
  197. set(BSP_L4_SOURCES_STM32L4R9I_Discovery audio camera idd io lcd ospi_nor psram sd ts)
  198. set(BSP_L4_SOURCES_STM32L476G_EVAL audio eeprom glass_lcd idd io lcd nor qspi sd sram ts)
  199. set(BSP_L4_SOURCES_STM32L476G_Discovery audio compass glass_lcd gyroscope qspi)
  200. set(BSP_L4_SOURCES_STM32L496G_Discovery audio camera idd io lcd qspi sd sram ts)
  201. set(BSP_L4_DIR_STM32L475E_IOT01 B-L475E-IOT01)
  202. set(BSP_L4_DEVICE_STM32L475E_IOT01 L475VG)
  203. set(BSP_L4_DEVICE_STM32L4P5G_Discovery L4P5AG)
  204. set(BSP_L4_DEVICE_STM32L4R9I_EVAL L4R9AI)
  205. set(BSP_L4_DEVICE_STM32L4R9I_Discovery L4R9AI)
  206. set(BSP_L4_DEVICE_STM32L476G_EVAL L476ZG)
  207. set(BSP_L4_DEVICE_STM32L476G_Discovery L476VG)
  208. set(BSP_L4_DEVICE_STM32L496G_Discovery L496AG)
  209. set(BSP_L5_BOARDS
  210. STM32L552E_EVAL STM32L562E-Discovery STM32L5xx_Nucleo_144
  211. )
  212. set(BSP_L5_COMPONENTS
  213. cs42l51 ft6x06 hx8347i iss66wvh8m8 lsm6dso mfxstm32l152 mx25lm51245g
  214. st7789h2 stmpe811
  215. )
  216. set(BSP_L5_SOURCES_STM32L562E_Discovery audio bus idd lcd motion_sensor ospi sd ts usbpd_pwr)
  217. set(BSP_L5_SOURCES_STM32L552E_EVAL audio bus idd io lcd ospi sd sram ts usbpd_pwr)
  218. set(BSP_L5_DEVICE_STM32L562E_Discovery L562QE)
  219. set(BSP_L5_DEVICE_STM32L552E_EVAL L552ZE)
  220. if(NOT BSP_FIND_COMPONENTS)
  221. set(BSP_FIND_COMPONENTS ${STM32_SUPPORTED_FAMILIES_LONG_NAME})
  222. endif()
  223. if(STM32H7 IN_LIST BSP_FIND_COMPONENTS)
  224. list(REMOVE_ITEM BSP_FIND_COMPONENTS STM32H7)
  225. list(APPEND BSP_FIND_COMPONENTS STM32H7_M7 STM32H7_M4)
  226. endif()
  227. list(REMOVE_DUPLICATES BSP_FIND_COMPONENTS)
  228. foreach(COMP ${BSP_FIND_COMPONENTS})
  229. string(TOLOWER ${COMP} COMP_L)
  230. string(TOUPPER ${COMP} COMP_U)
  231. string(REGEX MATCH "^STM32([A-Z][0-9])([0-9A-Z][0-9][A-Z][0-9A-Z])?_?(M[47])?.*$" COMP_U ${COMP_U})
  232. if(NOT CMAKE_MATCH_1)
  233. message(FATAL_ERROR "Unknown BSP component: ${COMP}")
  234. endif()
  235. if(CMAKE_MATCH_3)
  236. set(CORE ${CMAKE_MATCH_3})
  237. set(CORE_C "::${CORE}")
  238. set(CORE_U "_${CORE}")
  239. else()
  240. unset(CORE)
  241. unset(CORE_C)
  242. unset(CORE_U)
  243. endif()
  244. set(FAMILY ${CMAKE_MATCH_1})
  245. string(TOLOWER ${FAMILY} FAMILY_L)
  246. if(NOT STM32_CUBE_${FAMILY}_PATH)
  247. set(STM32_CUBE_${FAMILY}_PATH /opt/STM32Cube${FAMILY} CACHE PATH "Path to STM32Cube${FAMILY}")
  248. message(STATUS "No STM32_CUBE_${FAMILY}_PATH specified using default: ${STM32_CUBE_${FAMILY}_PATH}")
  249. endif()
  250. find_path(BSP_${FAMILY}_PATH
  251. NAMES Components/Common/io.h
  252. PATHS "${STM32_CUBE_${FAMILY}_PATH}/Drivers/BSP"
  253. NO_DEFAULT_PATH
  254. )
  255. if (NOT BSP_${FAMILY}_PATH)
  256. continue()
  257. endif()
  258. set(BSP_${FAMILY}_INCLUDE "${BSP_${FAMILY}_PATH}/Components/Common")
  259. add_library(BSP::STM32::${FAMILY}${CORE_C} INTERFACE IMPORTED)
  260. target_link_libraries(BSP::STM32::${FAMILY}${CORE_C} INTERFACE STM32::${FAMILY}${CORE_C})
  261. target_include_directories(BSP::STM32::${FAMILY}${CORE_C} INTERFACE "${BSP_${FAMILY}_PATH}/Components/Common")
  262. foreach(BOARD ${BSP_${FAMILY}_BOARDS})
  263. string(REPLACE "-" "_" BOARD_CANONICAL ${BOARD})
  264. string(TOLOWER ${BOARD_CANONICAL} BOARD_CANONICAL_L)
  265. set(BOARD_DEVICE ${BSP_${FAMILY}_DEVICE_${BOARD_CANONICAL}})
  266. stm32_get_cores(DEV_CORES FAMILY ${FAMILY} DEVICE ${BOARD_DEVICE})
  267. if(CORE AND (NOT ${CORE} IN_LIST DEV_CORES))
  268. continue()
  269. endif()
  270. find_path(BSP_${BOARD_CANONICAL}_PATH
  271. NAMES ${BOARD_CANONICAL_L}.h
  272. PATHS "${BSP_${FAMILY}_PATH}/${BOARD}" "${BSP_${FAMILY}_PATH}/${BSP_${FAMILY}_DIR_${BOARD_CANONICAL}}"
  273. NO_DEFAULT_PATH
  274. )
  275. if (NOT BSP_${BOARD_CANONICAL}_PATH)
  276. continue()
  277. endif()
  278. add_library(BSP::STM32::${BOARD_CANONICAL}${CORE_C} INTERFACE IMPORTED)
  279. target_link_libraries(BSP::STM32::${BOARD_CANONICAL}${CORE_C} INTERFACE BSP::STM32::${FAMILY}${CORE_C} CMSIS::STM32::${FAMILY}${CORE_C})
  280. target_include_directories(BSP::STM32::${BOARD_CANONICAL}${CORE_C} INTERFACE "${BSP_${BOARD_CANONICAL}_PATH}")
  281. target_sources(BSP::STM32::${BOARD_CANONICAL}${CORE_C} INTERFACE "${BSP_${BOARD_CANONICAL}_PATH}/${BOARD_CANONICAL_L}.c")
  282. foreach(SRC ${BSP_${FAMILY}_SOURCES_${BOARD_CANONICAL}})
  283. target_sources(BSP::STM32::${BOARD_CANONICAL}${CORE_C} INTERFACE "${BSP_${BOARD_CANONICAL}_PATH}/${BOARD_CANONICAL_L}_${SRC}.c")
  284. endforeach()
  285. if(BSP_${FAMILY}_DEVICE_${BOARD_CANONICAL})
  286. target_link_libraries(BSP::STM32::${BOARD_CANONICAL}${CORE_C} INTERFACE CMSIS::STM32::${BSP_${FAMILY}_DEVICE_${BOARD_CANONICAL}}${CORE_C})
  287. endif()
  288. endforeach()
  289. foreach(BCOMP ${BSP_${FAMILY}_COMPONENTS})
  290. string(TOLOWER ${BCOMP} BCOMP_L)
  291. string(TOUPPER ${BCOMP} BCOMP_U)
  292. add_library(BSP::STM32::${FAMILY}${CORE_C}::${BCOMP_U} INTERFACE IMPORTED)
  293. target_link_libraries(BSP::STM32::${FAMILY}${CORE_C}::${BCOMP_U} INTERFACE BSP::STM32::${FAMILY}${CORE_C} CMSIS::STM32::${FAMILY}${CORE_C})
  294. target_include_directories(BSP::STM32::${FAMILY}${CORE_C}::${BCOMP_U} INTERFACE "${BSP_${FAMILY}_PATH}/Components/${BCOMP}")
  295. find_file(BSP_${BOARD_CANONICAL}_${COMP}_SOURCE
  296. NAMES ${BCOMP}.c
  297. PATHS "${BSP_${FAMILY}_PATH}/Components/${BCOMP}"
  298. NO_DEFAULT_PATH
  299. )
  300. if (BSP_${BOARD_CANONICAL}_${COMP}_SOURCE)
  301. target_sources(BSP::STM32::${FAMILY}${CORE_C}::${BCOMP_U} INTERFACE "${BSP_${BOARD_CANONICAL}_${COMP}_SOURCE}")
  302. endif()
  303. endforeach()
  304. set(BSP_${COMP}_FOUND TRUE)
  305. if(BSP_${COMP}_FOUND)
  306. list(APPEND BSP_INCLUDE_DIRS "${BSP_${FAMILY}_INCLUDE}")
  307. endif()
  308. endforeach()
  309. include(FindPackageHandleStandardArgs)
  310. find_package_handle_standard_args(BSP
  311. REQUIRED_VARS BSP_INCLUDE_DIRS
  312. FOUND_VAR BSP_FOUND
  313. HANDLE_COMPONENTS
  314. )