FindStdPeriphLib.cmake 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. SET(StdPeriphLib_LIB_NAME_HD "stdperiph_hd")
  2. SET(StdPeriphLib_LIB_NAME_HD_VL "stdperiph_hd_vl")
  3. SET(StdPeriphLib_LIB_NAME_MD "stdperiph_md")
  4. SET(StdPeriphLib_LIB_NAME_MD_VL "stdperiph_md_vl")
  5. SET(StdPeriphLib_LIB_NAME_LD "stdperiph_ld")
  6. SET(StdPeriphLib_LIB_NAME_LD_VL "stdperiph_ld_vl")
  7. SET(StdPeriphLib_LIB_NAME_CL "stdperiph_cl")
  8. SET(StdPeriphLib_LIB_NAME_XL "stdperiph_xl")
  9. IF(NOT STM32_CHIP_TYPE)
  10. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_HD} ${StdPeriphLib_LIB_NAME_HD_VL} ${StdPeriphLib_LIB_NAME_MD} ${StdPeriphLib_LIB_NAME_MD_VL} ${StdPeriphLib_LIB_NAME_LD} ${StdPeriphLib_LIB_NAME_LD_VL} ${StdPeriphLib_LIB_NAME_CL} ${StdPeriphLib_LIB_NAME_XL})
  11. ELSE()
  12. IF(STM32_CHIP_TYPE STREQUAL "HD")
  13. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_HD})
  14. ELSEIF(STM32_CHIP_TYPE STREQUAL "HD_VL")
  15. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_HD_VL})
  16. ELSEIF(STM32_CHIP_TYPE STREQUAL "MD")
  17. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_MD})
  18. ELSEIF(STM32_CHIP_TYPE STREQUAL "MD_VL")
  19. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_MD_VL})
  20. ELSEIF(STM32_CHIP_TYPE STREQUAL "LD")
  21. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_LD})
  22. ELSEIF(STM32_CHIP_TYPE STREQUAL "LD_VL")
  23. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_LD_VL})
  24. ELSEIF(STM32_CHIP_TYPE STREQUAL "XL")
  25. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_XL})
  26. ELSEIF(STM32_CHIP_TYPE STREQUAL "CL")
  27. SET(StdPeriphLib_FIND_LIBS ${StdPeriphLib_LIB_NAME_CL})
  28. ELSE()
  29. MESSAGE(FATAL_ERROR "Invalid stm32 chip type.")
  30. ENDIF()
  31. ENDIF()
  32. FIND_PATH(StdPeriphLib_INCLUDE_DIR
  33. stm32f10x_adc.h
  34. stm32f10x_bkp.h
  35. stm32f10x_can.h
  36. stm32f10x_cec.h
  37. stm32f10x_crc.h
  38. stm32f10x_dac.h
  39. stm32f10x_dbgmcu.h
  40. stm32f10x_dma.h
  41. stm32f10x_exti.h
  42. stm32f10x_flash.h
  43. stm32f10x_fsmc.h
  44. stm32f10x_gpio.h
  45. stm32f10x_i2c.h
  46. stm32f10x_iwdg.h
  47. stm32f10x_pwr.h
  48. stm32f10x_rcc.h
  49. stm32f10x_rtc.h
  50. stm32f10x_sdio.h
  51. stm32f10x_spi.h
  52. stm32f10x_tim.h
  53. stm32f10x_usart.h
  54. stm32f10x_wwdg.h
  55. stm32f10x_misc.h
  56. PATH_SUFFIXES include stm32
  57. )
  58. FOREACH(StdPeriphLib_LIB_NAME ${StdPeriphLib_FIND_LIBS})
  59. SET(StdPeriphLib_LIBRARY StdPeriphLib_LIBRARY-NOTFOUND)
  60. FIND_LIBRARY(StdPeriphLib_LIBRARY
  61. NAMES ${StdPeriphLib_LIB_NAME}
  62. PATH_SUFFIXES lib
  63. )
  64. SET(StdPeriphLib_LIBRARIES ${StdPeriphLib_LIBRARIES} ${StdPeriphLib_LIBRARY})
  65. ENDFOREACH()
  66. INCLUDE(FindPackageHandleStandardArgs)
  67. SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_STDPERIPH_DRIVER")
  68. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_STDPERIPH_DRIVER")
  69. FIND_PACKAGE_HANDLE_STANDARD_ARGS(StdPeriphLib DEFAULT_MSG StdPeriphLib_LIBRARIES StdPeriphLib_INCLUDE_DIR)