import os
from building import *

cwd = GetCurrentDir()

def p(*args):
    return os.path.join(cwd, *args)

src = []

# server 侧业务代码
if GetDepend(['ERPC_MODE_SERVER']):
    src += Glob(p('service/src', '*.c'))
    src += Glob(p('service/src', '*.cpp'))

# client 侧业务代码
if GetDepend(['ERPC_MODE_CLIENT']):
    src += Glob(p('client/src', '*.c'))
    src += Glob(p('client/src', '*.cpp'))

# 生成的 proto（C++版）
gen_dir = p('proto', 'generated')

# interface 建议始终编译（两端都可能需要）
src += [p('proto', 'generated', 'servo_service_interface.cpp')]
if os.path.exists(p('proto', 'generated', 'file_service_interface.cpp')):
    src += [p('proto', 'generated', 'file_service_interface.cpp')]
src += [p('common', 'src', 'erpc_error_handler.cpp')]
if GetDepend(['ERPC_MODE_SERVER']):
    src += [p('proto', 'generated', 'servo_service_server.cpp')]
    if os.path.exists(p('proto', 'generated', 'file_service_server.cpp')):
        src += [p('proto', 'generated', 'file_service_server.cpp')]

if GetDepend(['ERPC_MODE_CLIENT']):
    src += [p('proto', 'generated', 'servo_service_client.cpp')]
    if os.path.exists(p('proto', 'generated', 'file_service_client.cpp')):
        src += [p('proto', 'generated', 'file_service_client.cpp')]

CPPPATH = [
    cwd,
    p('service'),
    p('client'),
     p('common'),
    gen_dir,
]

# depend 用于“组依赖”，空列表即可
group = DefineGroup(
    'app_erpc',
    src,
    depend=[],
    CPPPATH=CPPPATH,
    CPPDEFINES=[],
)

Return('group')
