Import("dev source_path setLuaEnv")

env, target, sources = dev.prepare_build(
    source_path, "core", source_glob="*.c", in_bin=False
)
env["SHLIBPREFIX"] = ""
env["CYGDLLPREFIX"] = ""

if dev.is_win32():
    env.Append(CPPDEFINES=['LUASOCKET_API="__declspec(dllexport)"'])
setLuaEnv(env)

if dev.is_win32():
    to_remove = "usocket.c"
else:
    to_remove = "wsocket.c"
for i, source in enumerate(sources):
    if source.find(to_remove) != -1:
        del sources[i]

ret = env.SharedLibrary(target, sources)

built_lib = dev.get_target(source_path, "core" + env["SHLIBSUFFIX"], in_bin=False)
target_lib = dev.get_target(
    source_path, "socket/core" + env["SHLIBSUFFIX"], in_bin=True
)

env.Depends(target_lib, ret)
env.Command(target_lib, built_lib, Move("$TARGET", "$SOURCE"))

Return("ret")
