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.

75 lines
2.2 KiB

add_rules("mode.debug", "mode.release")
set_allowedplats("macosx", "iphoneos", "android", "linux", "windows", "bsd")
add_requires("quickcpplib", "outcome", "ntkernel-error-category")
if has_config("openssl") then
add_requires("openssl")
end
option("experimental_status_code")
set_default(false)
set_description("Use experimental_status_code.")
add_defines("LLFIO_EXPERIMENTAL_STATUS_CODE")
set_showmenu(true)
option_end()
option("enable_openssl")
set_default(false)
set_description("Enable OpenSSL")
set_showmenu(true)
option_end()
option("cpp20")
set_default(false)
set_description("Use C++20 version.")
set_languages("c++20")
add_defines("QUICKCPPLIB_USE_STD_SPAN")
set_showmenu(true)
option_end()
target("llfio")
set_kind("$(kind)")
set_languages("c++17")
add_packages("quickcpplib", "outcome", "ntkernel-error-category")
add_headerfiles("include/(llfio/**.hpp)")
add_headerfiles("include/(llfio/**.ixx)")
add_headerfiles("include/(llfio/**.h)")
add_includedirs("include")
on_config(function(target)
if target:has_tool("cxx", "clang", "clangxx") then
target:add("cxxflags", "-fsized-deallocation")
end
end)
if not has_config("enable_openssl") then
add_defines("LLFIO_DISABLE_OPENSSL=1")
else
add_packages("openssl")
end
add_options("cpp20", "experimental_status_code", "enable_openssl")
if is_plat("windows") then
add_syslinks("advapi32", "user32", "wsock32", "ws2_32", "ole32", "shell32")
add_defines("LLFIO_LEAN_AND_MEAN")
end
if is_plat("android") then
add_defines("QUICKCPPLIB_DISABLE_EXECINFO")
end
add_defines("QUICKCPPLIB_USE_STD_BYTE", "QUICKCPPLIB_USE_STD_OPTIONAL")
if not is_kind("headeronly") then
if is_kind("shared") then
add_defines("LLFIO_DYN_LINK=1")
else
add_defines("LLFIO_STATIC_LINK=1")
end
add_defines("LLFIO_SOURCE=1")
add_files("src/*.cpp")
else
add_defines("LLFIO_HEADERS_ONLY=1")
add_headerfiles("include/(llfio/**.ipp)")
end
remove_headerfiles("include/llfio/ntkernel-error-category/**")