FindHAL.cmake 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. set(HAL_DRIVERS_F0
  2. adc can cec comp cortex crc dac dma exti flash gpio i2c i2s irda iwdg pcd
  3. pwr rcc rtc smartcard smbus spi tim tsc uart usart wwdg
  4. )
  5. set(HAL_EX_DRIVERS_F0
  6. adc crc dac flash i2c pcd pwr rcc rtc smartcard spi tim uart usart
  7. )
  8. set(HAL_LL_DRIVERS_F0
  9. adc comp crc crs dac dma exti gpio i2c pwr rcc rtc spi tim usart usb utils
  10. )
  11. set(HAL_DRIVERS_F1
  12. adc can cec cortex crc dac dma eth exti flash gpio hcd i2c i2s irda iwdg
  13. mmc nand nor pccard pcd pwr rcc rtc sd smartcard spi sram tim uart usart
  14. wwdg
  15. )
  16. set(HAL_EX_DRIVERS_F1
  17. adc dac flash gpio pcd rcc rtc tim
  18. )
  19. set(HAL_LL_DRIVERS_F1
  20. adc crc dac dma exti fsmc gpio i2c pwr rcc rtc sdmmc spi tim usart usb utils
  21. )
  22. set(HAL_DRIVERS_F2
  23. adc can cortex crc cryp dac dcmi dma eth exti flash gpio hash hcd i2c i2s
  24. irda iwdg mmc nand nor pccard pcd pwr rcc rng rtc sd smartcard spi sram tim
  25. uart usart wwdg
  26. )
  27. set(HAL_EX_DRIVERS_F2
  28. adc dac dcmi dma flash pcd pwr rcc rtc tim
  29. )
  30. set(HAL_LL_DRIVERS_F2
  31. adc crc dac dma exti fsmc gpio i2c pwr rcc rng rtc sdmmc spi tim usart usb
  32. utils
  33. )
  34. set(HAL_DRIVERS_F3
  35. adc can cec comp cortex crc dac dma exti flash gpio hrtim i2c i2s irda iwdg
  36. nand nor opamp pccard pcd pwr rcc rtc sdadc smartcard smbus spi sram tim tsc
  37. uart usart wwdg
  38. )
  39. set(HAL_EX_DRIVERS_F3
  40. adc crc dac flash i2c i2s opamp pcd pwr rcc rtc smartcard spi tim uart usart
  41. )
  42. set(HAL_LL_DRIVERS_F3
  43. adc comp crc dac dma exti fmc gpio hrtim i2c opamp pwr rcc rtc spi tim usart
  44. usb utils
  45. )
  46. set(HAL_DRIVERS_F4
  47. adc can cec cortex crc cryp dac dcmi dfsdm dma dma2d dsi eth exti flash
  48. flash_ramfunc fmpi2c gpio hash hcd i2c i2s irda iwdg lptim ltdc mmc nand nor
  49. pccard pcd pwr qspi rcc rng rtc sai sd sdram smartcard smbus spdifrx spi
  50. sram tim uart usart wwdg
  51. )
  52. set(HAL_EX_DRIVERS_F4
  53. adc cryp dac dcmi dma flash fmpi2c hash i2c i2s ltdc pcd pwr rcc rtc sai tim
  54. )
  55. set(HAL_LL_DRIVERS_F4
  56. adc crc dac dma dma2d exti fmc fsmc gpio i2c lptim pwr rcc rng rtc sdmmc spi
  57. tim usart usb utils
  58. )
  59. set(HAL_DRIVERS_F7
  60. adc can cec cortex crc cryp dac dcmi dfsdm dma dma2d dsi eth exti flash
  61. gpio hash hcd i2c i2s irda iwdg jpeg lptim ltdc mdios mmc nand nor pcd pwr
  62. qspi rcc rng rtc sai sd sdram smartcard smbus spdifrx spi sram tim uart
  63. usart wwdg
  64. )
  65. set(HAL_EX_DRIVERS_F7
  66. adc crc cryp dac dcmi dma flash hash i2c ltdc pcd pwr rcc rtc sai smartcard
  67. spi tim uart
  68. )
  69. set(HAL_LL_DRIVERS_F7
  70. adc crc dac dma dma2d exti fmc gpio i2c lptim pwr rcc rng rtc sdmmc spi tim
  71. usart usb utils
  72. )
  73. set(HAL_DRIVERS_G0
  74. adc cec comp cortex crc cryp dac dma exti flash gpio i2c i2s irda iwdg lptim
  75. pwr rcc rng rtc smartcard smbus spi tim uart usart wwdg
  76. )
  77. set(HAL_EX_DRIVERS_G0
  78. adc crc cryp dac dma flash i2c pwr rcc rtc smartcard spi tim uart usart
  79. )
  80. set(HAL_LL_DRIVERS_G0
  81. adc comp crc dac dma exti gpio i2c lptim lpuart pwr rcc rng rtc spi tim ucpd
  82. usart utils
  83. )
  84. set(HAL_DRIVERS_G4
  85. adc comp cordic cortex crc cryp dac dma exti fdcan flash flash_ramfunc fmac
  86. gpio hrtim i2c i2s irda iwdg lptim nand nor opamp pcd pwr qspi rcc rng rtc
  87. sai smartcard smbus spi sram tim uart usart wwdg
  88. )
  89. set(HAL_EX_DRIVERS_G4
  90. adc crc cryp dac dma flash i2c opamp pcd pwr rcc rtc sai smartcard spi tim
  91. uart usart
  92. )
  93. set(HAL_LL_DRIVERS_G4
  94. adc comp cordic crc crs dac dma exti fmac fmc gpio hrtim i2c lptim lpuart
  95. opamp pwr rcc rng rtc spi tim ucpd usart usb utils
  96. )
  97. set(HAL_DRIVERS_H7
  98. adc cec comp cortex crc cryp dac dcmi dfsdm dma dma2d dsi dts eth exti fdcan
  99. flash gfxmmu gpio hash hrtim hsem i2c i2s irda iwdg jpeg lptim ltdc mdios
  100. mdma mmc nand nor opamp ospi otfdec pcd pssi pwr qspi ramecc rcc rng rtc sai
  101. sd sdram smartcard smbus spdifrx spi sram swpmi tim uart usart wwdg
  102. )
  103. set(HAL_EX_DRIVERS_H7
  104. adc crc cryp dac dfsdm dma eth flash hash i2c i2s ltdc mmc opamp pcd pwr rcc
  105. rng rtc sai sd smartcard spi tim uart usart
  106. )
  107. set(HAL_LL_DRIVERS_H7
  108. adc bdma comp crc crs dac delayblock dma dma2d exti fmc gpio hrtim i2c lptim
  109. lpuart mdma opamp pwr rcc rng rtc sdmmc spi swpmi tim usart usb utils
  110. )
  111. set(HAL_DRIVERS_L0
  112. adc comp cortex crc cryp dac dma firewall flash flash_ramfunc gpio i2c i2s
  113. irda iwdg lcd lptim pcd pwr rcc rng rtc smartcard smbus spi tim tsc uart
  114. usart wwdg
  115. )
  116. set(HAL_EX_DRIVERS_L0
  117. adc comp crc cryp dac flash i2c pcd pwr rcc rtc smartcard tim uart
  118. )
  119. set(HAL_LL_DRIVERS_L0
  120. adc comp crc crs dac dma exti gpio i2c lptim lpuart pwr rcc rng rtc spi tim
  121. usart usb utils
  122. )
  123. set(HAL_DRIVERS_L1
  124. adc comp cortex crc cryp dac dma flash flash_ramfunc gpio i2c i2s irda iwdg
  125. lcd nor opamp pcd pwr rcc rtc sd smartcard spi sram tim uart usart wwdg
  126. )
  127. set(HAL_EX_DRIVERS_L1
  128. adc cryp dac flash opamp pcd pcd pwr rcc rtc tim
  129. )
  130. set(HAL_LL_DRIVERS_L1
  131. adc comp crc dac dma exti fsmc gpio i2c opamp pwr rcc rtc sdmmc spi tim
  132. usart usb utils
  133. )
  134. set(HAL_DRIVERS_L4
  135. adc can comp cortex crc cryp dac dcmi dfsdm dma dma2d dsi exti firewall
  136. flash flash_ramfunc gfxmmu gpio hash hcd i2c irda iwdg lcd lptim ltdc mmc
  137. nand nor opamp ospi pcd pka pssi pwr qspi rcc rng rtc sai sd smartcard smbus
  138. spi sram swpmi tim tsc uart usart wwdg
  139. )
  140. set(HAL_EX_DRIVERS_L4
  141. adc crc cryp dac dfsdm dma flash hash i2c ltdc mmc opamp pcd pwr rcc rng rtc
  142. sai sd smartcard spi tim uart usart
  143. )
  144. set(HAL_LL_DRIVERS_L4
  145. adc comp crc crs dac dma dma2d exti fmc gpio i2c lptim lpuart opamp pka pwr
  146. rcc rng rtc sdmmc spi swpmi tim usart usb utils
  147. )
  148. set(HAL_DRIVERS_L5
  149. adc comp cortex crc cryp dac dfsdm dma exti fdcan flash flash_ramfunc gpio
  150. gtzc hash i2c icache irda iwdg lptim mmc nand nor opamp ospi pcd pka pwr rcc
  151. rng rtc sai sd smartcard smbus spi sram tim tsc uart usart wwdg
  152. )
  153. set(HAL_EX_DRIVERS_L5
  154. adc crc cryp dac dfsdm dma flash hash i2c mmc opamp pcd pwr rcc
  155. rng rtc sai sd smartcard spi tim uart usart
  156. )
  157. set(HAL_LL_DRIVERS_L5
  158. adc comp crc crs dac dma exti fmc gpio i2c lptim lpuart opamp pka pwr rcc
  159. rng rtc sdmmc spi tim ucpd usart usb utils
  160. )
  161. foreach(FAMILY_SUFFIX ${STM32_SUPPORTED_FAMILIES_SHORT_NAME})
  162. list(APPEND HAL_DRIVERS ${HAL_DRIVERS_${FAMILY_SUFFIX}})
  163. list(APPEND HAL_LL_DRIVERS ${HAL_LL_DRIVERS_${FAMILY_SUFFIX}})
  164. endforeach()
  165. list(REMOVE_DUPLICATES HAL_DRIVERS)
  166. list(REMOVE_DUPLICATES HAL_LL_DRIVERS)
  167. foreach(COMP ${HAL_FIND_COMPONENTS})
  168. string(TOLOWER ${COMP} COMP_L)
  169. string(TOUPPER ${COMP} COMP_U)
  170. string(REGEX MATCH "^STM32([A-Z][0-9])([0-9A-Z][0-9][A-Z][0-9A-Z])?_?(M[47])?.*$" COMP_U ${COMP_U})
  171. if(CMAKE_MATCH_1)
  172. list(APPEND HAL_FIND_COMPONENTS_FAMILIES ${COMP})
  173. continue()
  174. endif()
  175. if(${COMP_L} IN_LIST HAL_DRIVERS)
  176. list(APPEND HAL_FIND_COMPONENTS_DRIVERS ${COMP})
  177. continue()
  178. endif()
  179. string(REGEX REPLACE "^ll_" "" COMP_L ${COMP_L})
  180. if(${COMP_L} IN_LIST HAL_LL_DRIVERS)
  181. list(APPEND HAL_FIND_COMPONENTS_DRIVERS_LL ${COMP})
  182. continue()
  183. endif()
  184. message(FATAL_ERROR "Unknown HAL component: ${COMP}")
  185. endforeach()
  186. if(NOT HAL_FIND_COMPONENTS_FAMILIES)
  187. set(HAL_FIND_COMPONENTS_FAMILIES ${STM32_SUPPORTED_FAMILIES_LONG_NAME})
  188. endif()
  189. if(STM32H7 IN_LIST HAL_FIND_COMPONENTS_FAMILIES)
  190. list(REMOVE_ITEM HAL_FIND_COMPONENTS_FAMILIES STM32H7)
  191. list(APPEND HAL_FIND_COMPONENTS_FAMILIES STM32H7_M7 STM32H7_M4)
  192. endif()
  193. list(REMOVE_DUPLICATES HAL_FIND_COMPONENTS_FAMILIES)
  194. if((NOT HAL_FIND_COMPONENTS_DRIVERS) AND (NOT HAL_FIND_COMPONENTS_DRIVERS_LL))
  195. set(HAL_FIND_COMPONENTS_DRIVERS ${HAL_DRIVERS})
  196. set(HAL_FIND_COMPONENTS_DRIVERS_LL ${HAL_LL_DRIVERS})
  197. endif()
  198. list(REMOVE_DUPLICATES HAL_FIND_COMPONENTS_DRIVERS)
  199. list(REMOVE_DUPLICATES HAL_FIND_COMPONENTS_DRIVERS_LL)
  200. message(STATUS "Search for HAL families: ${HAL_FIND_COMPONENTS_FAMILIES}")
  201. message(STATUS "Search for HAL drivers: ${HAL_FIND_COMPONENTS_DRIVERS}")
  202. message(STATUS "Search for HAL LL drivers: ${HAL_FIND_COMPONENTS_DRIVERS_LL}")
  203. foreach(COMP ${HAL_FIND_COMPONENTS_FAMILIES})
  204. string(TOUPPER ${COMP} COMP_U)
  205. string(REGEX MATCH "^STM32([A-Z][0-9])([0-9A-Z][0-9][A-Z][0-9A-Z])?_?(M[47])?.*$" COMP_U ${COMP_U})
  206. if(CMAKE_MATCH_3)
  207. set(CORE ${CMAKE_MATCH_3})
  208. set(CORE_C "::${CORE}")
  209. set(CORE_U "_${CORE}")
  210. else()
  211. unset(CORE)
  212. unset(CORE_C)
  213. unset(CORE_U)
  214. endif()
  215. set(FAMILY ${CMAKE_MATCH_1})
  216. string(TOLOWER ${FAMILY} FAMILY_L)
  217. if((NOT STM32_HAL_${FAMILY}_PATH) AND (NOT STM32_CUBE_${FAMILY}_PATH))
  218. set(STM32_CUBE_${FAMILY}_PATH $ENV{STM32_CUBE_${FAMILY}_PATH} CACHE PATH "Path to STM32Cube${FAMILY}")
  219. endif()
  220. if((NOT STM32_HAL_${FAMILY}_PATH) AND (NOT STM32_CUBE_${FAMILY}_PATH))
  221. set(STM32_CUBE_${FAMILY}_PATH /opt/STM32Cube${FAMILY} CACHE PATH "Path to STM32Cube${FAMILY}")
  222. message(STATUS "Neither STM32_CUBE_${FAMILY}_PATH nor STM32_HAL_${FAMILY}_PATH specified using default STM32_CUBE_${FAMILY}_PATH: ${STM32_CUBE_${FAMILY}_PATH}")
  223. endif()
  224. #Checking HAL patch or release version
  225. unset(VERSION_INFO)
  226. find_file(PACKAGE_FILE NAMES package.xml PATHS ${STM32_CUBE_${FAMILY}_PATH})
  227. if(PACKAGE_FILE)
  228. file(READ ${PACKAGE_FILE} PACKAGE_FILE_CONTENT)
  229. string(REGEX MATCH "PackDescription Release=\"FW.${FAMILY}.([0-9.]+)\"( Patch=\"FW.${FAMILY}.([0-9.]+)\")?" VERSION_INFO ${PACKAGE_FILE_CONTENT})
  230. if(CMAKE_MATCH_3) # This is the "Patch" revision
  231. set(HAL_${COMP}_VERSION ${CMAKE_MATCH_3})
  232. set(HAL_VERSION ${CMAKE_MATCH_3})
  233. else(CMAKE_MATCH_1) #This is the "Release" version
  234. set(HAL_${COMP}_VERSION ${CMAKE_MATCH_1})
  235. set(HAL_VERSION ${CMAKE_MATCH_1})
  236. endif()
  237. endif()
  238. if(NOT VERSION_INFO)
  239. message(STATUS "Could not read the HAL version from package.xml for ${COMP}")
  240. endif()
  241. find_path(HAL_${FAMILY}_PATH
  242. NAMES Inc/stm32${FAMILY_L}xx_hal.h
  243. PATHS "${STM32_HAL_${FAMILY}_PATH}" "${STM32_CUBE_${FAMILY}_PATH}/Drivers/STM32${FAMILY}xx_HAL_Driver"
  244. NO_DEFAULT_PATH
  245. )
  246. if (NOT HAL_${FAMILY}_PATH)
  247. continue()
  248. endif()
  249. find_path(HAL_${FAMILY}${CORE_U}_INCLUDE
  250. NAMES stm32${FAMILY_L}xx_hal.h
  251. PATHS "${HAL_${FAMILY}_PATH}/Inc"
  252. NO_DEFAULT_PATH
  253. )
  254. find_file(HAL_${FAMILY}${CORE_U}_SOURCE
  255. NAMES stm32${FAMILY_L}xx_hal.c
  256. PATHS "${HAL_${FAMILY}_PATH}/Src"
  257. NO_DEFAULT_PATH
  258. )
  259. if ((NOT HAL_${FAMILY}${CORE_U}_INCLUDE) OR (NOT HAL_${FAMILY}${CORE_U}_SOURCE))
  260. set(HAL_${COMP}_FOUND FALSE)
  261. continue()
  262. endif()
  263. if(NOT (TARGET HAL::STM32::${FAMILY}${CORE_C}))
  264. add_library(HAL::STM32::${FAMILY}${CORE_C} INTERFACE IMPORTED)
  265. target_link_libraries(HAL::STM32::${FAMILY}${CORE_C} INTERFACE STM32::${FAMILY}${CORE_C} CMSIS::STM32::${FAMILY}${CORE_C})
  266. target_include_directories(HAL::STM32::${FAMILY}${CORE_C} INTERFACE "${HAL_${FAMILY}${CORE_U}_INCLUDE}")
  267. target_sources(HAL::STM32::${FAMILY}${CORE_C} INTERFACE "${HAL_${FAMILY}${CORE_U}_SOURCE}")
  268. endif()
  269. foreach(DRV_COMP ${HAL_FIND_COMPONENTS_DRIVERS})
  270. string(TOLOWER ${DRV_COMP} DRV_L)
  271. string(TOUPPER ${DRV_COMP} DRV)
  272. if(NOT (DRV_L IN_LIST HAL_DRIVERS_${FAMILY}))
  273. continue()
  274. endif()
  275. find_file(HAL_${FAMILY}${CORE_U}_${DRV}_SOURCE
  276. NAMES stm32${FAMILY_L}xx_hal_${DRV_L}.c
  277. PATHS "${HAL_${FAMILY}_PATH}/Src"
  278. NO_DEFAULT_PATH
  279. )
  280. list(APPEND HAL_${FAMILY}${CORE_U}_SOURCES "${HAL_${FAMILY}_${DRV}_SOURCE}")
  281. if(NOT HAL_${FAMILY}${CORE_U}_${DRV}_SOURCE)
  282. message(WARNING "Cannot find ${DRV} driver for ${FAMILY}${CORE_U}")
  283. set(HAL_${DRV_COMP}_FOUND FALSE)
  284. continue()
  285. endif()
  286. set(HAL_${DRV_COMP}_FOUND TRUE)
  287. if(HAL_${FAMILY}${CORE_U}_${DRV}_SOURCE AND (NOT (TARGET HAL::STM32::${FAMILY}::${DRV})))
  288. add_library(HAL::STM32::${FAMILY}${CORE_C}::${DRV} INTERFACE IMPORTED)
  289. target_link_libraries(HAL::STM32::${FAMILY}${CORE_C}::${DRV} INTERFACE HAL::STM32::${FAMILY}${CORE_C})
  290. target_sources(HAL::STM32::${FAMILY}${CORE_C}::${DRV} INTERFACE "${HAL_${FAMILY}${CORE_U}_${DRV}_SOURCE}")
  291. endif()
  292. if(HAL_${FAMILY}${CORE_U}_${DRV}_SOURCE AND (${DRV_L} IN_LIST HAL_EX_DRIVERS_${FAMILY}))
  293. find_file(HAL_${FAMILY}${CORE_U}_${DRV}_EX_SOURCE
  294. NAMES stm32${FAMILY_L}xx_hal_${DRV_L}_ex.c
  295. PATHS "${HAL_${FAMILY}_PATH}/Src"
  296. NO_DEFAULT_PATH
  297. )
  298. list(APPEND HAL_${FAMILY}${CORE_U}_SOURCES "${HAL_${FAMILY}${CORE_U}_${DRV}_EX_SOURCE}")
  299. if(NOT HAL_${FAMILY}${CORE_U}_${DRV}_EX_SOURCE)
  300. message(WARNING "Cannot find ${DRV}Ex driver for ${FAMILY}${CORE_U}")
  301. endif()
  302. if((TARGET HAL::STM32::${FAMILY}${CORE_C}::${DRV}) AND (NOT (TARGET HAL::STM32::${FAMILY}${CORE_C}::${DRV}Ex)))
  303. add_library(HAL::STM32::${FAMILY}${CORE_C}::${DRV}Ex INTERFACE IMPORTED)
  304. target_link_libraries(HAL::STM32::${FAMILY}${CORE_C}::${DRV}Ex INTERFACE HAL::STM32::${FAMILY}${CORE_C}::${DRV})
  305. target_sources(HAL::STM32::${FAMILY}${CORE_C}::${DRV}Ex INTERFACE "${HAL_${FAMILY}${CORE_U}_${DRV}_EX_SOURCE}")
  306. endif()
  307. endif()
  308. endforeach()
  309. foreach(DRV_COMP ${HAL_FIND_COMPONENTS_DRIVERS_LL})
  310. string(TOLOWER ${DRV_COMP} DRV_L)
  311. string(REGEX REPLACE "^ll_" "" DRV_L ${DRV_L})
  312. string(TOUPPER ${DRV_L} DRV)
  313. if(NOT (DRV_L IN_LIST HAL_LL_DRIVERS_${FAMILY}))
  314. continue()
  315. endif()
  316. find_file(HAL_${FAMILY}${CORE_U}_${DRV}_LL_SOURCE
  317. NAMES stm32${FAMILY_L}xx_ll_${DRV_L}.c
  318. PATHS "${HAL_${FAMILY}_PATH}/Src"
  319. NO_DEFAULT_PATH
  320. )
  321. list(APPEND HAL_${FAMILY}${CORE_U}_SOURCES "${HAL_${FAMILY}_${DRV}_LL_SOURCE}")
  322. if(NOT HAL_${FAMILY}${CORE_U}_${DRV}_LL_SOURCE)
  323. message(WARNING "Cannot find LL_${DRV} driver for ${FAMILY}${CORE_U}")
  324. set(HAL_${DRV_COMP}_FOUND FALSE)
  325. continue()
  326. endif()
  327. set(HAL_${DRV_COMP}_FOUND TRUE)
  328. if(HAL_${FAMILY}${CORE_U}_${DRV}_LL_SOURCE AND (NOT (TARGET HAL::STM32::${FAMILY}${CORE_C}::LL_${DRV})))
  329. add_library(HAL::STM32::${FAMILY}${CORE_C}::LL_${DRV} INTERFACE IMPORTED)
  330. target_include_directories(HAL::STM32::${FAMILY}${CORE_C}::LL_${DRV} INTERFACE "${HAL_${FAMILY}${CORE_U}_INCLUDE}")
  331. target_sources(HAL::STM32::${FAMILY}${CORE_C}::LL_${DRV} INTERFACE "${HAL_${FAMILY}${CORE_U}_${DRV}_LL_SOURCE}")
  332. endif()
  333. endforeach()
  334. set(HAL_${COMP}_FOUND TRUE)
  335. list(APPEND HAL_INCLUDE_DIRS "${HAL_${FAMILY}${CORE_U}_INCLUDE}")
  336. list(APPEND HAL_SOURCES "${HAL_${FAMILY}${CORE_U}_SOURCES}")
  337. endforeach()
  338. list(REMOVE_DUPLICATES HAL_INCLUDE_DIRS)
  339. list(REMOVE_DUPLICATES HAL_SOURCES)
  340. include(FindPackageHandleStandardArgs)
  341. find_package_handle_standard_args(HAL
  342. REQUIRED_VARS HAL_INCLUDE_DIRS HAL_SOURCES
  343. FOUND_VAR HAL_FOUND
  344. HANDLE_COMPONENTS
  345. )