CMakeLists.txt 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. PROJECT(stm32cmsis)
  2. CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
  3. ENABLE_LANGUAGE(ASM)
  4. IF(NOT CMSIS3_DIR)
  5. SET(CMSIS3_DIR "/opt/CMSIS")
  6. MESSAGE(STATUS "No CMSIS3_DIR specified, using default: " ${CMSIS3_DIR})
  7. ENDIF()
  8. IF(${STM32_FAMILY} STREQUAL "F1")
  9. IF(NOT STM32F1_StdPeriphLib_DIR)
  10. SET(STM32F1_StdPeriphLib_DIR "/opt/STM32F10x_StdPeriph_Lib_V3.5.0")
  11. MESSAGE(STATUS "No STM32F1_StdPeriphLib_DIR specified, using default: " ${STM32F1_StdPeriphLib_DIR})
  12. ENDIF()
  13. INCLUDE_DIRECTORIES(
  14. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/
  15. )
  16. SET(CMSIS_HEADERS
  17. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h
  18. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h
  19. ${CMSIS3_DIR}/CMSIS/Include/core_cm3.h
  20. ${CMSIS3_DIR}/CMSIS/Include/core_cmFunc.h
  21. ${CMSIS3_DIR}/CMSIS/Include/core_cmInstr.h
  22. )
  23. SET(CMSIS_SOURCES
  24. ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c
  25. )
  26. SET(CMSIS_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/stm32f1_flash.ld.in)
  27. SET(STARTUP_PREFIX ${STM32F1_StdPeriphLib_DIR}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/gcc_ride7/startup_stm32f10x_)
  28. ELSEIF(${STM32_FAMILY} STREQUAL "F4")
  29. IF(NOT STM32F4_StdPeriphLib_DIR)
  30. SET(STM32F4_StdPeriphLib_DIR "/opt/STM32F4xx_DSP_StdPeriph_Lib_V1.3.0")
  31. MESSAGE(STATUS "No STM32F4_StdPeriphLib_DIR specified, using default: " ${STM32F4_StdPeriphLib_DIR})
  32. ENDIF()
  33. INCLUDE_DIRECTORIES(
  34. ${STM32F4_StdPeriphLib_DIR}/Libraries/CMSIS/Device/ST/STM32F4xx/Include/
  35. )
  36. SET(CMSIS_HEADERS
  37. ${STM32F4_StdPeriphLib_DIR}/Libraries/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h
  38. ${STM32F4_StdPeriphLib_DIR}/Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
  39. ${CMSIS3_DIR}/CMSIS/Include/core_cm4.h
  40. ${CMSIS3_DIR}/CMSIS/Include/core_cm4_simd.h
  41. ${CMSIS3_DIR}/CMSIS/Include/core_cmFunc.h
  42. ${CMSIS3_DIR}/CMSIS/Include/core_cmInstr.h
  43. )
  44. SET(CMSIS_SOURCES
  45. ${STM32F4_StdPeriphLib_DIR}/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
  46. )
  47. SET(CMSIS_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/stm32f4_flash.ld.in)
  48. SET(STARTUP_PREFIX ${STM32F4_StdPeriphLib_DIR}/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f)
  49. ENDIF()
  50. INCLUDE_DIRECTORIES(
  51. ${CMSIS3_DIR}/CMSIS/Include/
  52. ${CMAKE_CURRENT_SOURCE_DIR}
  53. )
  54. STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
  55. FOREACH(CHIP_TYPE ${STM32_CHIP_TYPES})
  56. STRING(TOLOWER ${CHIP_TYPE} CHIP_TYPE_LOWER)
  57. LIST(APPEND CMSIS_STARTUP_FILES ${STARTUP_PREFIX}${CHIP_TYPE_LOWER}.s)
  58. LIST(APPEND CMSIS_LIBRARIES cmsis_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER})
  59. ADD_LIBRARY(cmsis_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${CMSIS_SOURCES})
  60. STM32_SET_CHIP_DEFINITIONS(cmsis_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${CHIP_TYPE})
  61. ENDFOREACH()
  62. INSTALL(TARGETS ${CMSIS_LIBRARIES} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
  63. INSTALL(FILES ${CMSIS_HEADERS} DESTINATION include/stm32${STM32_FAMILY_LOWER})
  64. INSTALL(FILES ${CMSIS_STARTUP_FILES} ${CMSIS_LINKER_SCRIPT} DESTINATION share/cmsis/)