CMakeLists.txt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. PROJECT(stm32hal)
  2. CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
  3. ENABLE_LANGUAGE(ASM)
  4. IF(NOT DEFINED CMSIS_INCLUDE_DIR)
  5. FIND_PACKAGE(CMSIS REQUIRED)
  6. ENDIF()
  7. IF(${STM32_FAMILY} STREQUAL "F1")
  8. IF(NOT STM32Cube_DIR)
  9. SET(STM32Cube_DIR "/opt/STM32Cube_FW_F1_V1.1.0")
  10. MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
  11. ENDIF()
  12. SET(HAL_HEADER_DIR ${STM32Cube_DIR}/Drivers/STM32F1xx_HAL_Driver/Inc)
  13. SET(HAL_SOURCE_DIR ${STM32Cube_DIR}/Drivers/STM32F1xx_HAL_Driver/Src)
  14. SET(HAL_HEADERS
  15. ${HAL_HEADER_DIR}/stm32f1xx_hal.h
  16. ${HAL_HEADER_DIR}/stm32f1xx_hal_adc.h
  17. ${HAL_HEADER_DIR}/stm32f1xx_hal_adc_ex.h
  18. ${HAL_HEADER_DIR}/stm32f1xx_hal_can.h
  19. ${HAL_HEADER_DIR}/stm32f1xx_hal_can_ex.h
  20. ${HAL_HEADER_DIR}/stm32f1xx_hal_cec.h
  21. ${HAL_HEADER_DIR}/stm32f1xx_hal_conf_template.h
  22. ${HAL_HEADER_DIR}/stm32f1xx_hal_cortex.h
  23. ${HAL_HEADER_DIR}/stm32f1xx_hal_crc.h
  24. ${HAL_HEADER_DIR}/stm32f1xx_hal_dac.h
  25. ${HAL_HEADER_DIR}/stm32f1xx_hal_dac_ex.h
  26. ${HAL_HEADER_DIR}/stm32f1xx_hal_def.h
  27. ${HAL_HEADER_DIR}/stm32f1xx_hal_dma.h
  28. ${HAL_HEADER_DIR}/stm32f1xx_hal_dma_ex.h
  29. ${HAL_HEADER_DIR}/stm32f1xx_hal_eth.h
  30. ${HAL_HEADER_DIR}/stm32f1xx_hal_flash.h
  31. ${HAL_HEADER_DIR}/stm32f1xx_hal_flash_ex.h
  32. ${HAL_HEADER_DIR}/stm32f1xx_hal_gpio.h
  33. ${HAL_HEADER_DIR}/stm32f1xx_hal_gpio_ex.h
  34. ${HAL_HEADER_DIR}/stm32f1xx_hal_hcd.h
  35. ${HAL_HEADER_DIR}/stm32f1xx_hal_i2c.h
  36. ${HAL_HEADER_DIR}/stm32f1xx_hal_i2s.h
  37. ${HAL_HEADER_DIR}/stm32f1xx_hal_irda.h
  38. ${HAL_HEADER_DIR}/stm32f1xx_hal_iwdg.h
  39. ${HAL_HEADER_DIR}/stm32f1xx_hal_nand.h
  40. ${HAL_HEADER_DIR}/stm32f1xx_hal_nor.h
  41. ${HAL_HEADER_DIR}/stm32f1xx_hal_pccard.h
  42. ${HAL_HEADER_DIR}/stm32f1xx_hal_pcd.h
  43. ${HAL_HEADER_DIR}/stm32f1xx_hal_pcd_ex.h
  44. ${HAL_HEADER_DIR}/stm32f1xx_hal_pwr.h
  45. ${HAL_HEADER_DIR}/stm32f1xx_hal_rcc.h
  46. ${HAL_HEADER_DIR}/stm32f1xx_hal_rcc_ex.h
  47. ${HAL_HEADER_DIR}/stm32f1xx_hal_rtc.h
  48. ${HAL_HEADER_DIR}/stm32f1xx_hal_rtc_ex.h
  49. ${HAL_HEADER_DIR}/stm32f1xx_hal_sd.h
  50. ${HAL_HEADER_DIR}/stm32f1xx_hal_smartcard.h
  51. ${HAL_HEADER_DIR}/stm32f1xx_hal_spi.h
  52. ${HAL_HEADER_DIR}/stm32f1xx_hal_sram.h
  53. ${HAL_HEADER_DIR}/stm32f1xx_hal_tim.h
  54. ${HAL_HEADER_DIR}/stm32f1xx_hal_tim_ex.h
  55. ${HAL_HEADER_DIR}/stm32f1xx_hal_uart.h
  56. ${HAL_HEADER_DIR}/stm32f1xx_hal_usart.h
  57. ${HAL_HEADER_DIR}/stm32f1xx_hal_wwdg.h
  58. ${HAL_HEADER_DIR}/stm32f1xx_ll_fsmc.h
  59. ${HAL_HEADER_DIR}/stm32f1xx_ll_sdmmc.h
  60. ${HAL_HEADER_DIR}/stm32f1xx_ll_usb.h
  61. )
  62. SET(HAL_SOURCES
  63. ${HAL_SOURCE_DIR}/stm32f1xx_hal.c
  64. ${HAL_SOURCE_DIR}/stm32f1xx_hal_adc.c
  65. ${HAL_SOURCE_DIR}/stm32f1xx_hal_adc_ex.c
  66. ${HAL_SOURCE_DIR}/stm32f1xx_hal_can.c
  67. ${HAL_SOURCE_DIR}/stm32f1xx_hal_cec.c
  68. ${HAL_SOURCE_DIR}/stm32f1xx_hal_cortex.c
  69. ${HAL_SOURCE_DIR}/stm32f1xx_hal_crc.c
  70. ${HAL_SOURCE_DIR}/stm32f1xx_hal_dac.c
  71. ${HAL_SOURCE_DIR}/stm32f1xx_hal_dac_ex.c
  72. ${HAL_SOURCE_DIR}/stm32f1xx_hal_dma.c
  73. ${HAL_SOURCE_DIR}/stm32f1xx_hal_eth.c
  74. ${HAL_SOURCE_DIR}/stm32f1xx_hal_flash.c
  75. ${HAL_SOURCE_DIR}/stm32f1xx_hal_flash_ex.c
  76. ${HAL_SOURCE_DIR}/stm32f1xx_hal_gpio.c
  77. ${HAL_SOURCE_DIR}/stm32f1xx_hal_gpio_ex.c
  78. ${HAL_SOURCE_DIR}/stm32f1xx_hal_hcd.c
  79. ${HAL_SOURCE_DIR}/stm32f1xx_hal_i2c.c
  80. ${HAL_SOURCE_DIR}/stm32f1xx_hal_i2s.c
  81. ${HAL_SOURCE_DIR}/stm32f1xx_hal_irda.c
  82. ${HAL_SOURCE_DIR}/stm32f1xx_hal_iwdg.c
  83. ${HAL_SOURCE_DIR}/stm32f1xx_hal_msp_template.c
  84. ${HAL_SOURCE_DIR}/stm32f1xx_hal_nand.c
  85. ${HAL_SOURCE_DIR}/stm32f1xx_hal_nor.c
  86. ${HAL_SOURCE_DIR}/stm32f1xx_hal_pccard.c
  87. ${HAL_SOURCE_DIR}/stm32f1xx_hal_pcd.c
  88. ${HAL_SOURCE_DIR}/stm32f1xx_hal_pcd_ex.c
  89. ${HAL_SOURCE_DIR}/stm32f1xx_hal_pwr.c
  90. ${HAL_SOURCE_DIR}/stm32f1xx_hal_rcc.c
  91. ${HAL_SOURCE_DIR}/stm32f1xx_hal_rcc_ex.c
  92. ${HAL_SOURCE_DIR}/stm32f1xx_hal_rtc.c
  93. ${HAL_SOURCE_DIR}/stm32f1xx_hal_rtc_ex.c
  94. ${HAL_SOURCE_DIR}/stm32f1xx_hal_sd.c
  95. ${HAL_SOURCE_DIR}/stm32f1xx_hal_smartcard.c
  96. ${HAL_SOURCE_DIR}/stm32f1xx_hal_spi.c
  97. ${HAL_SOURCE_DIR}/stm32f1xx_hal_spi_ex.c
  98. ${HAL_SOURCE_DIR}/stm32f1xx_hal_sram.c
  99. ${HAL_SOURCE_DIR}/stm32f1xx_hal_tim.c
  100. ${HAL_SOURCE_DIR}/stm32f1xx_hal_tim_ex.c
  101. ${HAL_SOURCE_DIR}/stm32f1xx_hal_uart.c
  102. ${HAL_SOURCE_DIR}/stm32f1xx_hal_usart.c
  103. ${HAL_SOURCE_DIR}/stm32f1xx_hal_wwdg.c
  104. ${HAL_SOURCE_DIR}/stm32f1xx_ll_fsmc.c
  105. ${HAL_SOURCE_DIR}/stm32f1xx_ll_sdmmc.c
  106. ${HAL_SOURCE_DIR}/stm32f1xx_ll_usb.c
  107. )
  108. INSTALL(FILES ${HAL_HEADER_DIR}/Legacy/stm32_hal_legacy.h DESTINATION include/stm32f1/Legacy)
  109. ELSEIF(${STM32_FAMILY} STREQUAL "F4")
  110. IF(NOT STM32Cube_DIR)
  111. SET(STM32Cube_DIR "/opt/STM32Cube_FW_F4_V1.6.0")
  112. MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
  113. ENDIF()
  114. SET(HAL_HEADER_DIR ${STM32Cube_DIR}/Drivers/STM32F4xx_HAL_Driver/Inc)
  115. SET(HAL_SOURCE_DIR ${STM32Cube_DIR}/Drivers/STM32F4xx_HAL_Driver/Src)
  116. SET(HAL_HEADERS
  117. ${HAL_HEADER_DIR}/stm32f4xx_hal.h
  118. ${HAL_HEADER_DIR}/stm32f4xx_hal_adc.h
  119. ${HAL_HEADER_DIR}/stm32f4xx_hal_adc_ex.h
  120. ${HAL_HEADER_DIR}/stm32f4xx_hal_can.h
  121. ${HAL_HEADER_DIR}/stm32f4xx_hal_cec.h
  122. ${HAL_HEADER_DIR}/stm32f4xx_hal_conf_template.h
  123. ${HAL_HEADER_DIR}/stm32f4xx_hal_cortex.h
  124. ${HAL_HEADER_DIR}/stm32f4xx_hal_crc.h
  125. ${HAL_HEADER_DIR}/stm32f4xx_hal_cryp.h
  126. ${HAL_HEADER_DIR}/stm32f4xx_hal_cryp_ex.h
  127. ${HAL_HEADER_DIR}/stm32f4xx_hal_dac.h
  128. ${HAL_HEADER_DIR}/stm32f4xx_hal_dac_ex.h
  129. ${HAL_HEADER_DIR}/stm32f4xx_hal_dcmi.h
  130. ${HAL_HEADER_DIR}/stm32f4xx_hal_dcmi_ex.h
  131. ${HAL_HEADER_DIR}/stm32f4xx_hal_def.h
  132. ${HAL_HEADER_DIR}/stm32f4xx_hal_dma.h
  133. ${HAL_HEADER_DIR}/stm32f4xx_hal_dma2d.h
  134. ${HAL_HEADER_DIR}/stm32f4xx_hal_dma_ex.h
  135. ${HAL_HEADER_DIR}/stm32f4xx_hal_eth.h
  136. ${HAL_HEADER_DIR}/stm32f4xx_hal_flash.h
  137. ${HAL_HEADER_DIR}/stm32f4xx_hal_flash_ex.h
  138. ${HAL_HEADER_DIR}/stm32f4xx_hal_flash_ramfunc.h
  139. ${HAL_HEADER_DIR}/stm32f4xx_hal_fmpi2c.h
  140. ${HAL_HEADER_DIR}/stm32f4xx_hal_fmpi2c_ex.h
  141. ${HAL_HEADER_DIR}/stm32f4xx_hal_gpio.h
  142. ${HAL_HEADER_DIR}/stm32f4xx_hal_gpio_ex.h
  143. ${HAL_HEADER_DIR}/stm32f4xx_hal_hash.h
  144. ${HAL_HEADER_DIR}/stm32f4xx_hal_hash_ex.h
  145. ${HAL_HEADER_DIR}/stm32f4xx_hal_hcd.h
  146. ${HAL_HEADER_DIR}/stm32f4xx_hal_i2c.h
  147. ${HAL_HEADER_DIR}/stm32f4xx_hal_i2c_ex.h
  148. ${HAL_HEADER_DIR}/stm32f4xx_hal_i2s.h
  149. ${HAL_HEADER_DIR}/stm32f4xx_hal_i2s_ex.h
  150. ${HAL_HEADER_DIR}/stm32f4xx_hal_irda.h
  151. ${HAL_HEADER_DIR}/stm32f4xx_hal_iwdg.h
  152. ${HAL_HEADER_DIR}/stm32f4xx_hal_ltdc.h
  153. ${HAL_HEADER_DIR}/stm32f4xx_hal_nand.h
  154. ${HAL_HEADER_DIR}/stm32f4xx_hal_nor.h
  155. ${HAL_HEADER_DIR}/stm32f4xx_hal_pccard.h
  156. ${HAL_HEADER_DIR}/stm32f4xx_hal_pcd.h
  157. ${HAL_HEADER_DIR}/stm32f4xx_hal_pcd_ex.h
  158. ${HAL_HEADER_DIR}/stm32f4xx_hal_pwr.h
  159. ${HAL_HEADER_DIR}/stm32f4xx_hal_pwr_ex.h
  160. ${HAL_HEADER_DIR}/stm32f4xx_hal_qspi.h
  161. ${HAL_HEADER_DIR}/stm32f4xx_hal_rcc.h
  162. ${HAL_HEADER_DIR}/stm32f4xx_hal_rcc_ex.h
  163. ${HAL_HEADER_DIR}/stm32f4xx_hal_rng.h
  164. ${HAL_HEADER_DIR}/stm32f4xx_hal_rtc.h
  165. ${HAL_HEADER_DIR}/stm32f4xx_hal_rtc_ex.h
  166. ${HAL_HEADER_DIR}/stm32f4xx_hal_sai.h
  167. ${HAL_HEADER_DIR}/stm32f4xx_hal_sai_ex.h
  168. ${HAL_HEADER_DIR}/stm32f4xx_hal_sd.h
  169. ${HAL_HEADER_DIR}/stm32f4xx_hal_sdram.h
  170. ${HAL_HEADER_DIR}/stm32f4xx_hal_smartcard.h
  171. ${HAL_HEADER_DIR}/stm32f4xx_hal_spdifrx.h
  172. ${HAL_HEADER_DIR}/stm32f4xx_hal_spi.h
  173. ${HAL_HEADER_DIR}/stm32f4xx_hal_sram.h
  174. ${HAL_HEADER_DIR}/stm32f4xx_hal_tim.h
  175. ${HAL_HEADER_DIR}/stm32f4xx_hal_tim_ex.h
  176. ${HAL_HEADER_DIR}/stm32f4xx_hal_uart.h
  177. ${HAL_HEADER_DIR}/stm32f4xx_hal_usart.h
  178. ${HAL_HEADER_DIR}/stm32f4xx_hal_wwdg.h
  179. ${HAL_HEADER_DIR}/stm32f4xx_ll_fmc.h
  180. ${HAL_HEADER_DIR}/stm32f4xx_ll_fsmc.h
  181. ${HAL_HEADER_DIR}/stm32f4xx_ll_sdmmc.h
  182. ${HAL_HEADER_DIR}/stm32f4xx_ll_usb.h
  183. )
  184. SET(HAL_SOURCES
  185. ${HAL_SOURCE_DIR}/stm32f4xx_hal.c
  186. ${HAL_SOURCE_DIR}/stm32f4xx_hal_adc.c
  187. ${HAL_SOURCE_DIR}/stm32f4xx_hal_adc_ex.c
  188. ${HAL_SOURCE_DIR}/stm32f4xx_hal_can.c
  189. ${HAL_SOURCE_DIR}/stm32f4xx_hal_cec.c
  190. ${HAL_SOURCE_DIR}/stm32f4xx_hal_cortex.c
  191. ${HAL_SOURCE_DIR}/stm32f4xx_hal_crc.c
  192. ${HAL_SOURCE_DIR}/stm32f4xx_hal_cryp.c
  193. ${HAL_SOURCE_DIR}/stm32f4xx_hal_cryp_ex.c
  194. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dac.c
  195. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dac_ex.c
  196. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dcmi.c
  197. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dcmi_ex.c
  198. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dma.c
  199. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dma2d.c
  200. ${HAL_SOURCE_DIR}/stm32f4xx_hal_dma_ex.c
  201. ${HAL_SOURCE_DIR}/stm32f4xx_hal_eth.c
  202. ${HAL_SOURCE_DIR}/stm32f4xx_hal_flash.c
  203. ${HAL_SOURCE_DIR}/stm32f4xx_hal_flash_ex.c
  204. ${HAL_SOURCE_DIR}/stm32f4xx_hal_flash_ramfunc.c
  205. ${HAL_SOURCE_DIR}/stm32f4xx_hal_fmpi2c.c
  206. ${HAL_SOURCE_DIR}/stm32f4xx_hal_fmpi2c_ex.c
  207. ${HAL_SOURCE_DIR}/stm32f4xx_hal_gpio.c
  208. ${HAL_SOURCE_DIR}/stm32f4xx_hal_hash.c
  209. ${HAL_SOURCE_DIR}/stm32f4xx_hal_hash_ex.c
  210. ${HAL_SOURCE_DIR}/stm32f4xx_hal_hcd.c
  211. ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2c.c
  212. ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2c_ex.c
  213. ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2s.c
  214. ${HAL_SOURCE_DIR}/stm32f4xx_hal_i2s_ex.c
  215. ${HAL_SOURCE_DIR}/stm32f4xx_hal_irda.c
  216. ${HAL_SOURCE_DIR}/stm32f4xx_hal_iwdg.c
  217. ${HAL_SOURCE_DIR}/stm32f4xx_hal_ltdc.c
  218. ${HAL_SOURCE_DIR}/stm32f4xx_hal_msp_template.c
  219. ${HAL_SOURCE_DIR}/stm32f4xx_hal_nand.c
  220. ${HAL_SOURCE_DIR}/stm32f4xx_hal_nor.c
  221. ${HAL_SOURCE_DIR}/stm32f4xx_hal_pccard.c
  222. ${HAL_SOURCE_DIR}/stm32f4xx_hal_pcd.c
  223. ${HAL_SOURCE_DIR}/stm32f4xx_hal_pcd_ex.c
  224. ${HAL_SOURCE_DIR}/stm32f4xx_hal_pwr.c
  225. ${HAL_SOURCE_DIR}/stm32f4xx_hal_pwr_ex.c
  226. ${HAL_SOURCE_DIR}/stm32f4xx_hal_qspi.c
  227. ${HAL_SOURCE_DIR}/stm32f4xx_hal_rcc.c
  228. ${HAL_SOURCE_DIR}/stm32f4xx_hal_rcc_ex.c
  229. ${HAL_SOURCE_DIR}/stm32f4xx_hal_rng.c
  230. ${HAL_SOURCE_DIR}/stm32f4xx_hal_rtc.c
  231. ${HAL_SOURCE_DIR}/stm32f4xx_hal_rtc_ex.c
  232. ${HAL_SOURCE_DIR}/stm32f4xx_hal_sai.c
  233. ${HAL_SOURCE_DIR}/stm32f4xx_hal_sai_ex.c
  234. ${HAL_SOURCE_DIR}/stm32f4xx_hal_sd.c
  235. ${HAL_SOURCE_DIR}/stm32f4xx_hal_sdram.c
  236. ${HAL_SOURCE_DIR}/stm32f4xx_hal_smartcard.c
  237. ${HAL_SOURCE_DIR}/stm32f4xx_hal_spdifrx.c
  238. ${HAL_SOURCE_DIR}/stm32f4xx_hal_spi.c
  239. ${HAL_SOURCE_DIR}/stm32f4xx_hal_sram.c
  240. ${HAL_SOURCE_DIR}/stm32f4xx_hal_tim.c
  241. ${HAL_SOURCE_DIR}/stm32f4xx_hal_tim_ex.c
  242. ${HAL_SOURCE_DIR}/stm32f4xx_hal_uart.c
  243. ${HAL_SOURCE_DIR}/stm32f4xx_hal_usart.c
  244. ${HAL_SOURCE_DIR}/stm32f4xx_hal_wwdg.c
  245. ${HAL_SOURCE_DIR}/stm32f4xx_ll_fmc.c
  246. ${HAL_SOURCE_DIR}/stm32f4xx_ll_fsmc.c
  247. ${HAL_SOURCE_DIR}/stm32f4xx_ll_sdmmc.c
  248. ${HAL_SOURCE_DIR}/stm32f4xx_ll_usb.c
  249. )
  250. INSTALL(FILES ${HAL_HEADER_DIR}/Legacy/stm32_hal_legacy.h DESTINATION include/stm32f4/Legacy)
  251. ENDIF()
  252. STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
  253. INSTALL(FILES ${HAL_HEADERS} DESTINATION include/stm32${STM32_FAMILY_LOWER})
  254. INSTALL(FILES ${HAL_SOURCES} DESTINATION share/stm32hal/${STM32_FAMILY_LOWER})