# RT-Thread building script for bridge

import os
from building import *

cwd = GetCurrentDir()
objs = []
list = os.listdir(cwd)
src = Glob('*.cpp') \
    + Glob('opencore-amr/amrnb/*.cpp') \
    + Glob('opencore-amr/amrwb/*.cpp') \
    + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/**/**/*.cpp')

src_ignore = Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/bits2prm.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/copy.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/div_32.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/l_abs.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/q_plsf_3.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/q_plsf_3_tbl.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/qua_gain_tbl.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/r_fft.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/vad1.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/vad2.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/d_plsf_3.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/dec_lag3.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/decoder_gsm_amr.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/dtx_dec.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/pvgsmamrdecoder.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/pvgsmamrdecoder.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src/qgain475_tab.cpp')\
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src/dtx_enc.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src/gsmamr_encoder_wrapper.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src/qgain475.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src/qgain795.cpp') \
           + Glob('opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src/qua_gain.cpp')

src = [x for x in src if x not in src_ignore]

CPPPATH = [cwd] \
    + [cwd + '/opencore-amr/amrnb'] \
    + [cwd + '/opencore-amr/amrwb'] \
    + [cwd + '/opencore-amr/oscl'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/include'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/include'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/include'] \
    + [cwd + '/opencore-amr/opencore/codecs_v2/audio/gsm_amr/common/dec/include']

LOCAL_CCFLAGS = ' -DAMRNB_TINY -xc'
LOCAL_CPPFLAGS = ' -DAMRNB_TINY -xc'

for d in list:
    path = os.path.join(cwd, d)
    if os.path.isfile(os.path.join(path, 'SConscript')):
        objs = objs + SConscript(os.path.join(d, 'SConscript'))

group = DefineGroup('Audio_server', src, depend = ['AUDIO_USING_SOURCE_CODE', 'AUDIO_ENCODER_AMR'], CPPPATH = CPPPATH, LOCAL_CPPFLAGS = LOCAL_CPPFLAGS, LOCAL_CCFLAGS = LOCAL_CCFLAGS)
objs = objs + group

Return('objs')
