CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. cmake_minimum_required(VERSION 3.13)
  2. set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/stm32_gcc.cmake)
  3. if(NOT TEST_FAMILIES)
  4. set(TEST_FAMILIES F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5)
  5. endif()
  6. project(hal-test C ASM)
  7. set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
  8. if(FETCH_ST_SOURCES)
  9. stm32_fetch_cmsis(${TEST_FAMILIES})
  10. stm32_fetch_hal(${TEST_FAMILIES})
  11. endif()
  12. find_package(CMSIS REQUIRED)
  13. find_package(HAL REQUIRED)
  14. set(SOURCES main.c)
  15. foreach(FAMILY ${TEST_FAMILIES})
  16. stm32_get_devices_by_family(DEVICES FAMILY ${FAMILY})
  17. list(GET DEVICES 0 DEVICE)
  18. stm32_get_cores(CORES FAMILY ${FAMILY} DEVICE ${DEVICE})
  19. if(CORES)
  20. list(GET CORES 0 CORE)
  21. set(CORE "::${CORE}")
  22. else()
  23. unset(CORE)
  24. endif()
  25. add_executable(hal-test-${FAMILY} ${SOURCES})
  26. foreach(DRIVER ${HAL_DRIVERS_${FAMILY}})
  27. string(TOUPPER ${DRIVER} DRIVER)
  28. target_link_libraries(hal-test-${FAMILY} HAL::STM32::${FAMILY}${CORE}::${DRIVER})
  29. endforeach()
  30. foreach(DRIVER ${HAL_EX_DRIVERS_${FAMILY}})
  31. string(TOUPPER ${DRIVER} DRIVER)
  32. target_link_libraries(hal-test-${FAMILY} HAL::STM32::${FAMILY}${CORE}::${DRIVER}Ex)
  33. endforeach()
  34. foreach(DRIVER ${HAL_LL_DRIVERS_${FAMILY}})
  35. string(TOUPPER ${DRIVER} DRIVER)
  36. target_link_libraries(hal-test-${FAMILY} HAL::STM32::${FAMILY}${CORE}::LL_${DRIVER})
  37. endforeach()
  38. target_link_libraries(hal-test-${FAMILY} STM32::NoSys CMSIS::STM32::${DEVICE}${CORE})
  39. endforeach()