CMakeLists.txt 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. PROJECT(stm32stdperiph)
  2. CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
  3. ENABLE_LANGUAGE(ASM)
  4. FIND_PACKAGE(CMSIS REQUIRED)
  5. IF(${STM32_FAMILY} STREQUAL "F1")
  6. IF(NOT STM32F1_StdPeriphLib_DIR)
  7. SET(STM32F1_StdPeriphLib_DIR "/opt/STM32F10x_StdPeriph_Lib_V3.5.0")
  8. MESSAGE(STATUS "No STM32F1_StdPeriphLib_DIR specified, using default: " ${STM32F1_StdPeriphLib_DIR})
  9. ENDIF()
  10. INCLUDE_DIRECTORIES(
  11. ${STM32F1_StdPeriphLib_DIR}/Libraries/STM32F10x_StdPeriph_Driver/inc/
  12. )
  13. SET(STDPERIPH_SOURCE_DIR ${STM32F1_StdPeriphLib_DIR}/Libraries/STM32F10x_StdPeriph_Driver/src)
  14. SET(STDPERIPH_HEADER_DIR ${STM32F1_StdPeriphLib_DIR}/Libraries/STM32F10x_StdPeriph_Driver/inc)
  15. SET(STDPERIPH_HEADERS
  16. ${STDPERIPH_HEADER_DIR}/stm32f10x_adc.h
  17. ${STDPERIPH_HEADER_DIR}/stm32f10x_bkp.h
  18. ${STDPERIPH_HEADER_DIR}/stm32f10x_can.h
  19. ${STDPERIPH_HEADER_DIR}/stm32f10x_cec.h
  20. ${STDPERIPH_HEADER_DIR}/stm32f10x_crc.h
  21. ${STDPERIPH_HEADER_DIR}/stm32f10x_dac.h
  22. ${STDPERIPH_HEADER_DIR}/stm32f10x_dbgmcu.h
  23. ${STDPERIPH_HEADER_DIR}/stm32f10x_dma.h
  24. ${STDPERIPH_HEADER_DIR}/stm32f10x_exti.h
  25. ${STDPERIPH_HEADER_DIR}/stm32f10x_flash.h
  26. ${STDPERIPH_HEADER_DIR}/stm32f10x_fsmc.h
  27. ${STDPERIPH_HEADER_DIR}/stm32f10x_gpio.h
  28. ${STDPERIPH_HEADER_DIR}/stm32f10x_i2c.h
  29. ${STDPERIPH_HEADER_DIR}/stm32f10x_iwdg.h
  30. ${STDPERIPH_HEADER_DIR}/stm32f10x_pwr.h
  31. ${STDPERIPH_HEADER_DIR}/stm32f10x_rcc.h
  32. ${STDPERIPH_HEADER_DIR}/stm32f10x_rtc.h
  33. ${STDPERIPH_HEADER_DIR}/stm32f10x_sdio.h
  34. ${STDPERIPH_HEADER_DIR}/stm32f10x_spi.h
  35. ${STDPERIPH_HEADER_DIR}/stm32f10x_tim.h
  36. ${STDPERIPH_HEADER_DIR}/stm32f10x_usart.h
  37. ${STDPERIPH_HEADER_DIR}/stm32f10x_wwdg.h
  38. )
  39. SET(STDPERIPH_SOURCES
  40. ${STDPERIPH_SOURCE_DIR}/misc.c
  41. ${STDPERIPH_SOURCE_DIR}/stm32f10x_adc.c
  42. ${STDPERIPH_SOURCE_DIR}/stm32f10x_bkp.c
  43. ${STDPERIPH_SOURCE_DIR}/stm32f10x_can.c
  44. ${STDPERIPH_SOURCE_DIR}/stm32f10x_cec.c
  45. ${STDPERIPH_SOURCE_DIR}/stm32f10x_crc.c
  46. ${STDPERIPH_SOURCE_DIR}/stm32f10x_dac.c
  47. ${STDPERIPH_SOURCE_DIR}/stm32f10x_dbgmcu.c
  48. ${STDPERIPH_SOURCE_DIR}/stm32f10x_dma.c
  49. ${STDPERIPH_SOURCE_DIR}/stm32f10x_exti.c
  50. ${STDPERIPH_SOURCE_DIR}/stm32f10x_flash.c
  51. ${STDPERIPH_SOURCE_DIR}/stm32f10x_fsmc.c
  52. ${STDPERIPH_SOURCE_DIR}/stm32f10x_gpio.c
  53. ${STDPERIPH_SOURCE_DIR}/stm32f10x_i2c.c
  54. ${STDPERIPH_SOURCE_DIR}/stm32f10x_iwdg.c
  55. ${STDPERIPH_SOURCE_DIR}/stm32f10x_pwr.c
  56. ${STDPERIPH_SOURCE_DIR}/stm32f10x_rcc.c
  57. ${STDPERIPH_SOURCE_DIR}/stm32f10x_rtc.c
  58. ${STDPERIPH_SOURCE_DIR}/stm32f10x_sdio.c
  59. ${STDPERIPH_SOURCE_DIR}/stm32f10x_spi.c
  60. ${STDPERIPH_SOURCE_DIR}/stm32f10x_tim.c
  61. ${STDPERIPH_SOURCE_DIR}/stm32f10x_usart.c
  62. ${STDPERIPH_SOURCE_DIR}/stm32f10x_wwdg.c
  63. )
  64. INSTALL(FILES ${STDPERIPH_HEADER_DIR}/misc.h RENAME stm32f10x_misc.h DESTINATION include/stm32f1)
  65. ENDIF()
  66. INCLUDE_DIRECTORIES(
  67. ${CMAKE_CURRENT_SOURCE_DIR}
  68. ${CMSIS_INCLUDE_DIR}
  69. )
  70. IF(USE_ASSERT)
  71. ADD_DEFINITIONS("-D\"assert_param(expr)\"=\"((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))\"")
  72. ELSE()
  73. ADD_DEFINITIONS("-D\"assert_param(expr)\"=\"((void)0)\"")
  74. ENDIF()
  75. STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
  76. FOREACH(CHIP_TYPE ${STM32_CHIP_TYPES})
  77. STRING(TOLOWER ${CHIP_TYPE} CHIP_TYPE_LOWER)
  78. LIST(APPEND STDPERIPH_LIBRARIES stdperiph_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER})
  79. ADD_LIBRARY(stdperiph_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${STDPERIPH_SOURCES})
  80. STM32_SET_CHIP_DEFINITIONS(stdperiph_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${CHIP_TYPE})
  81. ENDFOREACH()
  82. INSTALL(TARGETS ${STDPERIPH_LIBRARIES} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
  83. INSTALL(FILES ${STDPERIPH_HEADERS} DESTINATION include/stm32${STM32_FAMILY_LOWER})