import rtconfig
from building import *

Import('SDK_LIB')

cwd = GetCurrentDir()

# add the general drivers.
src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f7xx_hal_msp.c')

if GetDepend(['BSP_USING_ETH']):
    src += Glob('ports/phy_reset.c')

if GetDepend(['BSP_USING_QSPI_FLASH']):
    src += Glob('ports/drv_qspi_flash.c')

if GetDepend(['BSP_USING_SDCARD']):
    src += Glob('ports/sdcard_port.c')

path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
path += [cwd + '/ports']

startup_path_prefix = SDK_LIB

if rtconfig.PLATFORM in ['gcc']:
    src += [startup_path_prefix + '/STM32F7xx_HAL/CMSIS/Device/ST/STM32F7xx/Source/Templates/gcc/startup_stm32f746xx.s']
elif rtconfig.PLATFORM in ['armcc', 'armclang']:
    src += [startup_path_prefix + '/STM32F7xx_HAL/CMSIS/Device/ST/STM32F7xx/Source/Templates/arm/startup_stm32f746xx.s']
elif rtconfig.PLATFORM in ['iccarm']:
    src += [startup_path_prefix + '/STM32F7xx_HAL/CMSIS/Device/ST/STM32F7xx/Source/Templates/iar/startup_stm32f746xx.s']

# STM32F756xx || STM32F746xx || STM32F745xx || STM32F767xx  ||
# STM32F769xx || STM32F777xx || STM32F779xx || STM32F722xx  ||
# STM32F723xx || STM32F732xx || STM32F733xx || STM32F730xx  || STM32F750xx
# You can select chips from the list above
CPPDEFINES = ['STM32F746xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

Return('group')