FindSTM32BSP.cmake 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. IF(STM32_FAMILY STREQUAL "F4")
  2. IF(STM_BOARD STREQUAL "STM32F429I-Discovery")
  3. SET(BSP_COMPONENTS eeprom
  4. gyroscope
  5. io
  6. lcd
  7. sdram
  8. ts)
  9. SET(BSP_PREFIX stm32f429i_discovery_)
  10. SET(BSP_HEADERS stm32f429i_discovery.h)
  11. SET(BSP_SRC stm32f429i_discovery.c)
  12. ENDIF()
  13. set(COMMON_COMPONENTS ampire480272
  14. ampire640480
  15. cs43l22
  16. exc7200
  17. ili9325
  18. ili9341
  19. l3gd20
  20. lis302dl
  21. lis3dsh
  22. lsm303dlhc
  23. mfxstm32l152
  24. n25q256a
  25. ov2640
  26. s5k5cag
  27. st7735
  28. stmpe1600
  29. stmpe811
  30. ts3510
  31. wm8994
  32. )
  33. ENDIF()
  34. IF(NOT STM32BSP_FIND_COMPONENTS)
  35. SET(STM32BSP_FIND_COMPONENTS ${BSP_COMPONENTS} ${COMMON_COMPONENTS})
  36. MESSAGE(STATUS "No STM32BSP components selected, using all: ${STM32BSP_FIND_COMPONENTS}")
  37. ENDIF()
  38. FOREACH(cmp ${STM32BSP_FIND_COMPONENTS})
  39. LIST(FIND BSP_COMPONENTS ${cmp} STM32BSP_FOUND_INDEX)
  40. IF(${STM32BSP_FOUND_INDEX} LESS 0)
  41. LIST(FIND COMMON_COMPONENTS ${cmp} COMMON_FOUND_INDEX)
  42. IF(${COMMON_FOUND_INDEX} LESS 0)
  43. MESSAGE(FATAL_ERROR "Unknown STM32BSP component: ${cmp}. Available components: ${BSP_COMPONENTS} and ${COMMON_COMPONENTS}")
  44. ELSE()
  45. LIST(APPEND BSP_COMMON_HEADER ${cmp}.h)
  46. LIST(APPEND BSP_SRC ${cmp}.c)
  47. ENDIF()
  48. ELSE()
  49. LIST(APPEND BSP_HEADERS ${BSP_PREFIX}${cmp}.h)
  50. LIST(APPEND BSP_SRC ${BSP_PREFIX}${cmp}.c)
  51. ENDIF()
  52. ENDFOREACH()
  53. FIND_PATH(STM32BSP_INCLUDE_DIR ${BSP_HEADERS}
  54. HINTS ${STM32Cube_DIR}/Drivers/BSP/${STM_BOARD}
  55. CMAKE_FIND_ROOT_PATH_BOTH
  56. )
  57. FOREACH(cmp ${BSP_COMMON_HEADERS})
  58. FIND_PATH(STM32BSP_${cmp}_INCLUDE_DIR ${cmp}
  59. HINTS ${STM32Cube_DIR}/Drivers/BSP/Components
  60. PATH_SUFFIXES ${cmp}
  61. CMAKE_FIND_ROOT_PATH_BOTH
  62. )
  63. LIST(APPEND BSP_HEADERS ${STM32BSP_${cmp}_INCLUDE_DIR})
  64. ENDFOREACH()
  65. FOREACH(file ${BSP_SRC})
  66. STRING(REPLACE ".c" "" subfolder ${file})
  67. FIND_FILE(BSP_${file}_FILE ${file}
  68. HINTS ${STM32Cube_DIR}/Drivers/BSP/${STM_BOARD} ${STM32Cube_DIR}/Drivers/BSP/Components
  69. PATH_SUFFIXES ${subfolder}
  70. CMAKE_FIND_ROOT_PATH_BOTH
  71. )
  72. MESSAGE(STATUS "BSP file is " ${BSP_${file}_FILE})
  73. LIST(APPEND STM32BSP_SOURCES ${BSP_${file}_FILE})
  74. ENDFOREACH()
  75. INCLUDE(FindPackageHandleStandardArgs)
  76. FIND_PACKAGE_HANDLE_STANDARD_ARGS(STM32BSP DEFAULT_MSG STM32BSP_INCLUDE_DIR STM32BSP_SOURCES)