import os
from building import *

objs = []
cwd  = GetCurrentDir()

# add general drivers
src = []
path =  [cwd]

if GetDepend(['BSP_USING_SPI5']):
    src += Glob('spi_sample.c')

if GetDepend(['BSP_USING_RCC']):
    src += Glob('drv_rcc.c')

if GetDepend(['BSP_USING_EXTI']):
    src += Glob('drv_exti.c')

if GetDepend(['BSP_USING_PWR']):
    src += Glob('drv_pwr.c')

if GetDepend(['BSP_USING_WWDG']):
    src += Glob('drv_wwdg.c')

if GetDepend(['BSP_USING_LPTIM']):
    src += Glob('drv_lptim.c')

if GetDepend(['BSP_USING_TIM14']):
    src += Glob('timer_sample.c')

if GetDepend(['BSP_USING_PMIC']):
    src += Glob('drv_pmic.c')

if GetDepend(['BSP_USING_RS485']):
    src += Glob('drv_rs485.c')

if GetDepend(['BSP_USING_GBE']):
    src += Glob('drv_eth.c')

if GetDepend(['BSP_USING_SDMMC']):
    src += Glob('drv_sdio.c')

if GetDepend(['BSP_USING_AUDIO']):
    src += Glob('audio/drv_cs42l51.c')
    src += Glob('audio/drv_sound.c')
    src += Glob('audio/audio_play.c')
    path += [cwd + '/audio']

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

if GetDepend(['(BSP_USING_RNG)']) or GetDepend(['(BSP_USING_HASH)']) or GetDepend(['(BSP_USING_CRC)']) or GetDepend(['BSP_USING_CRYP']):
    src += Glob('crypto/crypto_sample.c')


CPPDEFINES = ['CORE_CM4','NO_ATOMIC_64_SUPPORT','METAL_INTERNAL','METAL_MAX_DEVICE_REGIONS=2','VIRTIO_SLAVE_ONLY','STM32MP157Axx','__LOG_TRACE_IO_']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

list = os.listdir(cwd)
for item in list:
    if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
        group = group + SConscript(os.path.join(item, 'SConscript'))

Return('group')
