package("sailormoon_flags")
set_kind("library", {headeronly = true})
set_homepage("https://github.com/sailormoon/flags")
set_description("Simple, extensible, header-only C++17 argument parser released into the public domain.")
set_license("MIT")
add_urls("https://github.com/sailormoon/flags/archive/refs/tags/v$(version).tar.gz")
add_versions("1.2", "2fb981e00d5f97753fa2b685819c4cab8aea7a3f62939a9a0549fb8406b37500")
add_versions("1.1", "f6626c97ba7a45c473557db2e4b68df4d9cda18a8a97c89a5d8d4e5c53dde904")
if on_check then
on_check("android", function (package)
local ndk = package:toolchain("ndk")
local ndkver = ndk:config("ndkver")
if package:version() and package:version():ge("1.2") then
assert(ndkver and tonumber(ndkver) >= 27, "package(sailormoon_flags >= 1.2): need ndk version >= 27")
end
end)
end
on_install(function (package)
os.cp("include", package:installdir())
end)
on_test(function (package)
local languages = "c++17"
if package:version() and package:version():ge("1.2") then
languages = "c++20"
end
assert(package:check_cxxsnippets({test = [[
#include "flags.h"
void test() {
int argc = 2;
char **argv = NULL;
const flags::args args(argc, argv);
}
]]}, {configs = {languages = languages}}))
end)