package An official xmake package repository https://xrepo.xmake.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

49 lines
1.3 KiB

option("ssl", {default = nil, type = "string"})
option("uv", {showmenu = true, default = false})
option("uring", {showmenu = true, default = false})
option("quic", {showmenu = true, default = false})
add_rules("mode.debug", "mode.release")
local ssl = get_config("ssl")
if ssl then
add_requires(ssl)
add_packages(ssl)
if ssl == "openssl" or ssl == "openssl3" or ssl == "boringssl" then
add_defines("LIBUS_USE_OPENSSL")
elseif ssl == "wolfssl" then
add_defines("LIBUS_USE_WOLFSSL")
end
else
add_defines("LIBUS_NO_SSL")
end
if is_plat("windows") or has_config("uv") then
add_requires("libuv")
add_packages("libuv")
add_defines("LIBUS_USE_LIBUV")
end
if is_plat("linux") and has_config("uring") then
add_requires("liburing")
add_packages("liburing")
add_defines("LIBUS_USE_IO_URING")
end
if has_config("quic") then
add_requires("lsquic")
add_packages("lsquic")
add_defines("LIBUS_USE_QUIC")
end
target("usockets")
set_kind("$(kind)")
set_languages("c++17")
add_files("src/**.cpp", "src/**.c")
add_includedirs("src")
add_headerfiles("src/libusockets.h")
if is_plat("windows") and is_kind("shared") then
add_rules("utils.symbols.export_all", {export_classes = true})
end