package = "LuaSocket" version = "scm-3" source = { url = "git+https://github.com/lunarmodules/luasocket.git", branch = "master" } description = { summary = "Network support for the Lua language", detailed = [[ LuaSocket is a Lua extension library composed of two parts: a set of C modules that provide support for the TCP and UDP transport layers, and a set of Lua modules that provide functions commonly needed by applications that deal with the Internet. ]], homepage = "https://github.com/lunarmodules/luasocket", license = "MIT" } dependencies = { "lua >= 5.1" } local function make_plat(plat) local defines = { unix = { "LUASOCKET_DEBUG" }, macosx = { "LUASOCKET_DEBUG", "UNIX_HAS_SUN_LEN" }, win32 = { "LUASOCKET_DEBUG", "NDEBUG" }, mingw32 = { "LUASOCKET_DEBUG", -- "LUASOCKET_INET_PTON", "WINVER=0x0501" } } local modules = { ["socket.core"] = { sources = { "src/luasocket.c" , "src/timeout.c" , "src/buffer.c" , "src/io.c" , "src/auxiliar.c" , "src/options.c" , "src/inet.c" , "src/except.c" , "src/select.c" , "src/tcp.c" , "src/udp.c" , "src/compat.c" }, defines = defines[plat], incdir = "/src" }, ["socket.unix"] = { sources = { "src/buffer.c" , "src/compat.c" , "src/auxiliar.c" , "src/options.c" , "src/timeout.c" , "src/io.c" , "src/usocket.c" , "src/unix.c" , "src/unixdgram.c" , "src/unixstream.c" }, defines = defines[plat], incdir = "/src" }, ["mime.core"] = { sources = { "src/mime.c", "src/compat.c" }, defines = defines[plat], incdir = "/src" }, ["socket.http"] = "src/http.lua", ["socket.url"] = "src/url.lua", ["socket.tp"] = "src/tp.lua", ["socket.ftp"] = "src/ftp.lua", ["socket.headers"] = "src/headers.lua", ["socket.smtp"] = "src/smtp.lua", ltn12 = "src/ltn12.lua", socket = "src/socket.lua", mbox = "src/mbox.lua", mime = "src/mime.lua" } if plat == "unix" or plat == "macosx" or plat == "haiku" then modules["socket.core"].sources[#modules["socket.core"].sources+1] = "src/usocket.c" if plat == "haiku" then modules["socket.core"].libraries = {"network"} end modules["socket.serial"] = { sources = { "src/buffer.c" , "src/compat.c" , "src/auxiliar.c" , "src/options.c" , "src/timeout.c" , "src/io.c" , "src/usocket.c" , "src/serial.c" }, defines = defines[plat], incdir = "/src" } end if plat == "win32" or plat == "mingw32" then modules["socket.core"].sources[#modules["socket.core"].sources+1] = "src/wsocket.c" modules["socket.core"].libraries = { "ws2_32" } modules["socket.core"].libdirs = {} modules["socket.unix"].sources[#modules["socket.unix"].sources+1] = "src/wsocket.c" modules["socket.unix"].sources[#modules["socket.unix"].sources+1] = "src/inet.c" modules["socket.unix"].libraries = { "ws2_32" } modules["socket.unix"].libdirs = {} end return { modules = modules } end build = { type = "builtin", platforms = { unix = make_plat("unix"), macosx = make_plat("macosx"), haiku = make_plat("haiku"), win32 = make_plat("win32"), mingw32 = make_plat("mingw32") }, copy_directories = { "docs" , "samples" , "test" } }