import rtconfig
from building import *

cwd     = GetCurrentDir()
src     = Split("""
../../src/tusb.c
../../src/common/tusb_fifo.c
../../src/device/usbd.c
../../src/device/usbd_control.c
./tusb_rt_thread_port.c
""")
path = [cwd, cwd + "/../../src"]

# BSP
if GetDepend(["SOC_FAMILY_STM32"]):
    src += ["../../src/portable/synopsys/dwc2/dcd_dwc2.c",
            "../../src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c"]

if GetDepend(["SOC_NRF52840"]):
    src += ["../../src/portable/nordic/nrf5x/dcd_nrf5x.c"]

if GetDepend(["SOC_FAMILY_RENESAS"]):
    src += ["../../src/portable/renesas/rusb2/dcd_rusb2.c",
            "../../src/portable/renesas/rusb2/rusb2_common.c"]

# Device class
if GetDepend(["PKG_TINYUSB_DEVICE_CDC"]):
    src += ["../../src/class/cdc/cdc_device.c"]

if GetDepend(["PKG_TINYUSB_DEVICE_MSC"]):
    src += ["../../src/class/msc/msc_device.c", "port/msc_device_port.c"]

LOCAL_CFLAGS = ''

if rtconfig.PLATFORM == 'gcc' or rtconfig.PLATFORM == 'armclang': # GCC or Keil AC6
    LOCAL_CFLAGS += ' -std=c99'
elif rtconfig.PLATFORM == 'armcc': # Keil AC5
    LOCAL_CFLAGS += ' --c99 --gnu'

group = DefineGroup('TinyUSB', src, depend = ['PKG_USING_TINYUSB'], CPPPATH = path, LOCAL_CFLAGS = LOCAL_CFLAGS)

Return('group')
