86 lines
2.3 KiB
CMake
86 lines
2.3 KiB
CMake
IF(STM32_FAMILY STREQUAL "F4")
|
|
IF(STM_BOARD STREQUAL "STM32F429I-Discovery")
|
|
SET(BSP_COMPONENTS eeprom
|
|
gyroscope
|
|
io
|
|
lcd
|
|
sdram
|
|
ts)
|
|
SET(BSP_PREFIX stm32f429i_discovery_)
|
|
SET(BSP_HEADERS stm32f429i_discovery.h)
|
|
SET(BSP_SRC stm32f429i_discovery.c)
|
|
ENDIF()
|
|
set(COMMON_COMPONENTS ampire480272
|
|
ampire640480
|
|
cs43l22
|
|
exc7200
|
|
ili9325
|
|
ili9341
|
|
l3gd20
|
|
lis302dl
|
|
lis3dsh
|
|
lsm303dlhc
|
|
mfxstm32l152
|
|
n25q256a
|
|
ov2640
|
|
s5k5cag
|
|
st7735
|
|
stmpe1600
|
|
stmpe811
|
|
ts3510
|
|
wm8994
|
|
)
|
|
ENDIF()
|
|
|
|
IF(NOT STM32BSP_FIND_COMPONENTS)
|
|
SET(STM32BSP_FIND_COMPONENTS ${BSP_COMPONENTS} ${COMMON_COMPONENTS})
|
|
MESSAGE(STATUS "No STM32BSP components selected, using all: ${STM32BSP_FIND_COMPONENTS}")
|
|
ENDIF()
|
|
|
|
|
|
|
|
FOREACH(cmp ${STM32BSP_FIND_COMPONENTS})
|
|
LIST(FIND BSP_COMPONENTS ${cmp} STM32BSP_FOUND_INDEX)
|
|
IF(${STM32BSP_FOUND_INDEX} LESS 0)
|
|
LIST(FIND COMMON_COMPONENTS ${cmp} COMMON_FOUND_INDEX)
|
|
IF(${COMMON_FOUND_INDEX} LESS 0)
|
|
MESSAGE(FATAL_ERROR "Unknown STM32BSP component: ${cmp}. Available components: ${BSP_COMPONENTS} and ${COMMON_COMPONENTS}")
|
|
ELSE()
|
|
LIST(APPEND BSP_COMMON_HEADER ${cmp}.h)
|
|
LIST(APPEND BSP_SRC ${cmp}.c)
|
|
ENDIF()
|
|
ELSE()
|
|
LIST(APPEND BSP_HEADERS ${BSP_PREFIX}${cmp}.h)
|
|
LIST(APPEND BSP_SRC ${BSP_PREFIX}${cmp}.c)
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
|
|
FIND_PATH(STM32BSP_INCLUDE_DIR ${BSP_HEADERS}
|
|
HINTS ${STM32Cube_DIR}/Drivers/BSP/${STM_BOARD}
|
|
CMAKE_FIND_ROOT_PATH_BOTH
|
|
)
|
|
|
|
FOREACH(cmp ${BSP_COMMON_HEADERS})
|
|
FIND_PATH(STM32BSP_${cmp}_INCLUDE_DIR ${cmp}
|
|
HINTS ${STM32Cube_DIR}/Drivers/BSP/Components
|
|
PATH_SUFFIXES ${cmp}
|
|
CMAKE_FIND_ROOT_PATH_BOTH
|
|
)
|
|
LIST(APPEND BSP_HEADERS ${STM32BSP_${cmp}_INCLUDE_DIR})
|
|
ENDFOREACH()
|
|
|
|
FOREACH(file ${BSP_SRC})
|
|
STRING(REPLACE ".c" "" subfolder ${file})
|
|
FIND_FILE(BSP_${file}_FILE ${file}
|
|
HINTS ${STM32Cube_DIR}/Drivers/BSP/${STM_BOARD} ${STM32Cube_DIR}/Drivers/BSP/Components
|
|
PATH_SUFFIXES ${subfolder}
|
|
CMAKE_FIND_ROOT_PATH_BOTH
|
|
)
|
|
MESSAGE(STATUS "BSP file is " ${BSP_${file}_FILE})
|
|
LIST(APPEND STM32BSP_SOURCES ${BSP_${file}_FILE})
|
|
ENDFOREACH()
|
|
|
|
INCLUDE(FindPackageHandleStandardArgs)
|
|
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(STM32BSP DEFAULT_MSG STM32BSP_INCLUDE_DIR STM32BSP_SOURCES)
|