CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. cmake_minimum_required(VERSION 3.16)
  2. set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/stm32_gcc.cmake)
  3. project(stm32-blinky C ASM)
  4. set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
  5. # Configure here which STM32 target(s) to build
  6. option(BLINKY_F4_EXAMPLE "Compile F4 example" ON)
  7. option(BLINKY_F1_EXAMPLE "Compile F1 example" OFF)
  8. option(BLINKY_L0_EXAMPLE "Compile L0 example" OFF)
  9. set(HAL_COMP_LIST RCC GPIO CORTEX)
  10. set(CMSIS_COMP_LIST "")
  11. if(BLINKY_F4_EXAMPLE)
  12. list(APPEND CMSIS_COMP_LIST STM32F4)
  13. list(APPEND HAL_COMP_LIST STM32F4)
  14. endif()
  15. if(BLINKY_F1_EXAMPLE)
  16. list(APPEND CMSIS_COMP_LIST STM32F1)
  17. list(APPEND HAL_COMP_LIST STM32F1)
  18. endif()
  19. if(BLINKY_L0_EXAMPLE)
  20. list(APPEND CMSIS_COMP_LIST STM32L0)
  21. list(APPEND HAL_COMP_LIST STM32L0)
  22. endif()
  23. find_package(CMSIS COMPONENTS "${CMSIS_COMP_LIST}" REQUIRED)
  24. find_package(HAL COMPONENTS "${HAL_COMP_LIST}" REQUIRED)
  25. # Find all device specific drivers:
  26. #find_package(HAL COMPONENTS STM32L0 STM32F1 STM32F4 REQUIRED)
  27. # Find drivers for all families:
  28. #find_package(HAL COMPONENTS RCC GPIO CORTEX REQUIRED)
  29. # Find LL driver:
  30. #find_package(HAL COMPONENTS LL_GPIO REQUIRED)
  31. # Find everything:
  32. #find_package(HAL REQUIRED)
  33. # STM32F4-Discovery
  34. if(BLINKY_F4_EXAMPLE)
  35. add_executable(stm32-blinky-f4 blinky.c stm32f4xx_hal_conf.h)
  36. target_link_libraries(stm32-blinky-f4
  37. HAL::STM32::F4::RCC
  38. HAL::STM32::F4::GPIO
  39. HAL::STM32::F4::CORTEX
  40. CMSIS::STM32::F407VG
  41. STM32::NoSys
  42. )
  43. stm32_print_size_of_target(stm32-blinky-f4)
  44. endif()
  45. # STM32VL-Discovery
  46. if(BLINKY_F1_EXAMPLE)
  47. add_executable(stm32-blinky-f1 blinky.c stm32f1xx_hal_conf.h)
  48. target_link_libraries(stm32-blinky-f1
  49. HAL::STM32::F1::RCC
  50. HAL::STM32::F1::GPIO
  51. HAL::STM32::F1::CORTEX
  52. CMSIS::STM32::F100RB
  53. STM32::NoSys
  54. )
  55. stm32_print_size_of_target(stm32-blinky-f1)
  56. endif()
  57. # STM32L0538-Discovery
  58. if(BLINKY_L0_EXAMPLE)
  59. add_executable(stm32-blinky-l0 blinky.c stm32l0xx_hal_conf.h)
  60. target_link_libraries(stm32-blinky-l0
  61. HAL::STM32::L0::RCC
  62. HAL::STM32::L0::GPIO
  63. HAL::STM32::L0::CORTEX
  64. CMSIS::STM32::L053C8
  65. STM32::NoSys
  66. )
  67. stm32_print_size_of_target(stm32-blinky-l0)
  68. endif()