src.dualinventive.com/dinet/libdi/common/cmake/modules_fw/FindSTM32BSP.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)