CMakeLists.txt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. PROJECT(stm32cmsis)
  2. CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
  3. ENABLE_LANGUAGE(ASM)
  4. IF(${STM32_FAMILY} STREQUAL "F1")
  5. IF(NOT STM32F1_StdPeriphLib_DIR)
  6. SET(STM32F1_StdPeriphLib_DIR "/opt/STM32F10x_StdPeriph_Lib_V3.5.0")
  7. MESSAGE(STATUS "No STM32F1_StdPeriphLib_DIR specified, using default: " ${STM32F1_StdPeriphLib_DIR})
  8. ENDIF()
  9. INCLUDE_DIRECTORIES(
  10. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/
  11. )
  12. SET(CMSIS_HEADERS
  13. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h
  14. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h
  15. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h
  16. )
  17. SET(CMSIS_SOURCES
  18. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c
  19. )
  20. SET(CMSIS_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/stm32f1_flash.ld.in)
  21. SET(STARTUP_PREFIX ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/gcc_ride7/startup_stm32f10x_)
  22. ENDIF()
  23. INCLUDE_DIRECTORIES(
  24. ${CMAKE_CURRENT_SOURCE_DIR}
  25. )
  26. STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
  27. FOREACH(CHIP_TYPE ${STM32_CHIP_TYPES})
  28. STRING(TOLOWER ${CHIP_TYPE} CHIP_TYPE_LOWER)
  29. LIST(APPEND CMSIS_STARTUP_FILES ${STARTUP_PREFIX}${CHIP_TYPE_LOWER}.s)
  30. LIST(APPEND CMSIS_LIBRARIES cmsis_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER})
  31. ADD_LIBRARY(cmsis_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${CMSIS_SOURCES})
  32. STM32_SET_CHIP_DEFINITIONS(cmsis_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${CHIP_TYPE})
  33. ENDFOREACH()
  34. INSTALL(TARGETS ${CMSIS_LIBRARIES} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
  35. INSTALL(FILES ${CMSIS_HEADERS} DESTINATION include/stm32${STM32_FAMILY_LOWER})
  36. INSTALL(FILES ${CMSIS_STARTUP_FILES} ${CMSIS_LINKER_SCRIPT} DESTINATION share/cmsis/)