forked from OctaForge/libostd
more reliable add_optional/positional/category (allow narrowing etc)
This commit is contained in:
parent
a368311e12
commit
65087c8e36
12
build.cc
12
build.cc
|
@ -148,23 +148,23 @@ int main(int argc, char **argv) {
|
|||
|
||||
auto &help = ap.add_help("print this message and exit");
|
||||
|
||||
ap.add_optional('\0', "no-examples", ostd::arg_value::NONE)
|
||||
ap.add_optional(0, "no-examples", ostd::arg_value::NONE)
|
||||
.help("do not build examples")
|
||||
.action(ostd::arg_store_false(build_examples));
|
||||
|
||||
ap.add_optional('\0', "no-test-suite", ostd::arg_value::NONE)
|
||||
ap.add_optional(0, "no-test-suite", ostd::arg_value::NONE)
|
||||
.help("do not build test suite")
|
||||
.action(ostd::arg_store_false(build_testsuite));
|
||||
|
||||
ap.add_optional('\0', "no-static", ostd::arg_value::NONE)
|
||||
ap.add_optional(0, "no-static", ostd::arg_value::NONE)
|
||||
.help("do not build static libostd")
|
||||
.action(ostd::arg_store_false(build_static));
|
||||
|
||||
ap.add_optional('\0', "shared", ostd::arg_value::NONE)
|
||||
ap.add_optional(0, "shared", ostd::arg_value::NONE)
|
||||
.help("build shared libostd")
|
||||
.action(ostd::arg_store_true(build_shared));
|
||||
|
||||
ap.add_optional('\0', "config", ostd::arg_value::REQUIRED)
|
||||
ap.add_optional(0, "config", ostd::arg_value::REQUIRED)
|
||||
.help("build configuration (debug/release)")
|
||||
.action(ostd::arg_store_str(build_cfg));
|
||||
|
||||
|
@ -172,7 +172,7 @@ int main(int argc, char **argv) {
|
|||
.help("print entire commands")
|
||||
.action(ostd::arg_store_true(verbose));
|
||||
|
||||
ap.add_optional('\0', "clean", ostd::arg_value::NONE)
|
||||
ap.add_optional(0, "clean", ostd::arg_value::NONE)
|
||||
.help("remove generated files and exit")
|
||||
.action(ostd::arg_store_true(clean));
|
||||
|
||||
|
|
|
@ -250,19 +250,19 @@ struct arg_parser {
|
|||
|
||||
template<typename ...A>
|
||||
arg_optional &add_optional(A &&...args) {
|
||||
arg_description *p = new arg_optional{std::forward<A>(args)...};
|
||||
arg_description *p = new arg_optional(std::forward<A>(args)...);
|
||||
return static_cast<arg_optional &>(*p_opts.emplace_back(p));
|
||||
}
|
||||
|
||||
template<typename ...A>
|
||||
arg_positional &add_positional(A &&...args) {
|
||||
arg_description *p = new arg_positional{std::forward<A>(args)...};
|
||||
arg_description *p = new arg_positional(std::forward<A>(args)...);
|
||||
return static_cast<arg_positional &>(*p_opts.emplace_back(p));
|
||||
}
|
||||
|
||||
template<typename ...A>
|
||||
arg_category &add_category(A &&...args) {
|
||||
arg_description *p = new arg_category{std::forward<A>(args)...};
|
||||
arg_description *p = new arg_category(std::forward<A>(args)...);
|
||||
return static_cast<arg_category &>(*p_opts.emplace_back(p));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue