CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. cmake_minimum_required(VERSION 3.8)
  2. set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/stm32_gcc.cmake)
  3. if(NOT TEST_FAMILIES)
  4. # Can't test H7 because it needs some non-free components
  5. set(TEST_FAMILIES F0 F1 F2 F3 F4 F7 G0 G4)
  6. endif()
  7. set(DEVICE_STM32F0xx_Nucleo_32 F031K6)
  8. set(DEVICE_STM32F0xx_Nucleo F030R8)
  9. set(DEVICE_STM32F1xx_Nucleo F103RB)
  10. set(DEVICE_STM32F2xx_Nucleo_144 F207ZG)
  11. set(DEVICE_STM32F3xx_Nucleo_32 F303K8)
  12. set(DEVICE_STM32F3xx_Nucleo F334R8)
  13. set(DEVICE_STM32F3xx_Nucleo_144 F303ZE)
  14. set(DEVICE_STM32F4xx_Nucleo_144 F429ZI)
  15. set(DEVICE_STM32F4xx_Nucleo F446RE)
  16. set(DEVICE_STM32F7xx_Nucleo_144 F746ZG)
  17. set(DEVICE_STM32G0xx_Nucleo G070RB)
  18. set(DEVICE_STM32G0xx_Nucleo_32 G031K8)
  19. set(DEVICE_STM32G4xx_Nucleo G474RE)
  20. set(DEVICE_STM32H7xx_Nucleo H7A3ZI)
  21. set(DEFINES_STM32469I_EVAL USE_IOEXPANDER)
  22. set(DEFINES_STM32F769I_EVAL USE_IOEXPANDER)
  23. # Ban some boards because their BSP need non-free components
  24. set(BANNED_BOARDS STM32756G_EVAL)
  25. project(bsp-test C ASM)
  26. set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
  27. find_package(CMSIS REQUIRED)
  28. find_package(HAL REQUIRED)
  29. find_package(BSP REQUIRED)
  30. set(SOURCES main.c)
  31. foreach(FAMILY ${TEST_FAMILIES})
  32. foreach(BOARD ${BSP_${FAMILY}_BOARDS})
  33. string(REPLACE "-" "_" BOARD ${BOARD})
  34. if(BOARD IN_LIST BANNED_BOARDS)
  35. continue()
  36. endif()
  37. add_executable(bsp-test-${BOARD} ${SOURCES})
  38. target_link_libraries(bsp-test-${BOARD}
  39. BSP::STM32::${BOARD}
  40. HAL::STM32::${FAMILY}
  41. STM32::NoSys
  42. )
  43. if(DEVICE_${BOARD})
  44. target_link_libraries(bsp-test-${BOARD} CMSIS::STM32::${DEVICE_${BOARD}})
  45. endif()
  46. if(DEFINES_${BOARD})
  47. target_compile_definitions(bsp-test-${BOARD} PRIVATE ${DEFINES_${BOARD}})
  48. endif()
  49. foreach(COMP ${BSP_${FAMILY}_COMPONENTS})
  50. string(TOUPPER ${COMP} COMP)
  51. # Workaround - F3 has both CS43L22 and CS43L52 that conflicts
  52. if((FAMILY STREQUAL F3) AND (COMP STREQUAL CS43L22))
  53. continue()
  54. endif()
  55. target_link_libraries(bsp-test-${BOARD} BSP::STM32::${FAMILY}::${COMP})
  56. endforeach()
  57. endforeach()
  58. endforeach()