CMakeLists.txt 2.4 KB

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