utilities.cmake 1.2 KB

1234567891011121314151617181920212223242526272829
  1. function(stm32_util_create_family_targets FAMILY)
  2. if(NOT (TARGET STM32::${FAMILY}))
  3. add_library(STM32::${FAMILY} INTERFACE IMPORTED)
  4. target_compile_options(STM32::${FAMILY} INTERFACE
  5. --sysroot="${TOOLCHAIN_SYSROOT}"
  6. -mthumb -mabi=aapcs -Wall -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -ffast-math
  7. $<$<CONFIG:Debug>:-Og>
  8. $<$<CONFIG:Release>:-Os>
  9. )
  10. target_link_options(STM32::${FAMILY} INTERFACE
  11. --sysroot="${TOOLCHAIN_SYSROOT}"
  12. -mthumb -mabi=aapcs -Wl,--gc-sections
  13. $<$<CONFIG:Debug>:-Og>
  14. $<$<CONFIG:Release>:-Os -s>
  15. )
  16. target_compile_definitions(STM32::${FAMILY} INTERFACE
  17. STM32${FAMILY}
  18. )
  19. endif()
  20. foreach(TYPE ${STM32_${FAMILY}_TYPES})
  21. if(NOT (TARGET STM32::${TYPE}))
  22. add_library(STM32::${TYPE} INTERFACE IMPORTED)
  23. target_link_libraries(STM32::${TYPE} INTERFACE STM32::${FAMILY})
  24. target_compile_definitions(STM32::${TYPE} INTERFACE
  25. STM32${TYPE}
  26. )
  27. endif()
  28. endforeach()
  29. endfunction()