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
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/**") |