CMakeLists.txt 1016 B

1234567891011121314151617181920
  1. cmake_minimum_required(VERSION 3.13)
  2. set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/stm32-cmake/cmake/gcc_stm32.cmake)
  3. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/stm32-cmake/cmake)
  4. find_package(CMSIS REQUIRED)
  5. find_package(STM32HAL COMPONENTS gpio tim uart REQUIRED)
  6. add_library(stm_cube_impl ${CMSIS_SOURCES} ${STM32HAL_SOURCES})
  7. target_include_directories(stm_cube_impl PUBLIC ${CMSIS_INCLUDE_DIRS} ${STM32HAL_INCLUDE_DIR})
  8. stm32_set_target_properties(stm_cube_impl)
  9. # stm_cube target is made to propagate properties of stm_cube_impl, as stm32_set_target_properties
  10. # sets properties privately for given target. This eliminates need to call stm32_set_target_properties
  11. # on every target that links against STM32HAL.
  12. add_library(stm_cube INTERFACE)
  13. target_link_libraries(stm_cube INTERFACE stm_cube_impl)
  14. target_compile_definitions(stm_cube INTERFACE $<TARGET_PROPERTY:stm_cube_impl,COMPILE_DEFINITIONS>)
  15. target_link_options(stm_cube INTERFACE -T${CMAKE_CURRENT_BINARY_DIR}/stm_cube_impl_flash.ld)