import os
import rtconfig
from building import *

Import('SDK_LIB')

cwd = GetCurrentDir()

# add general drivers
src = Split('''
board.c
CubeMX_Config/Src/stm32l4xx_hal_msp.c
''')

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

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

if GetDepend(['BSP_USING_ICM20608']) or GetDepend(['BSP_USING_AHT10']):
    src += Glob('ports/sensor_port.c')

if GetDepend(['BSP_USING_AUDIO']):
    src += Glob('ports/audio/drv_es8388.c')
    src += Glob('ports/audio/drv_sound.c')

if GetDepend(['BSP_USING_AUDIO_RECORD']):
    src += Glob('ports/audio/drv_mic.c')

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

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

if GetDepend(['BSP_USING_AUDIO']):
    path += [cwd + '/ports/audio']
    
startup_path_prefix = SDK_LIB

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

CPPDEFINES = ['STM32L475xx'] 
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

Return('group')
