This silences the following warning:
No project() command is present. The top-level CMakeLists.txt file must
contain a literal, direct call to the project() command. Add a line of
code such as
project(ProjectName)
near the top of the file, but after cmake_minimum_required().
CMake is pretending there is a "project(Project)" command on the first
line.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
It's too early to use std::chars_format as there is not wide enough
support in stdlib implementations. After the following stdlib become our
supported versions, this can be revisited.
GCC >= 10.1.0
Clang >= 7.0.0 (already our minimum)
MSVC >= 19.4
Reverts commit 1c61082a4c.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
Argument.scan handles simple string to numeric type conversions, removing
the need to create a lambda. Argument.action is still necessary for more
complex conversions and those are left unchanged.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
IMHO, the .scan function and its supporting functions are beautiful
metaprogramming that needs to be more visible to argparse users. As a
start, document the function, with simple examples.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
I believe the Supported Toolchains all now include <charconv> (and
std::chars_format) and we can use the stdlib-defined values.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
Fixed installation directory - the lib is architecture-independent and so CMake and pkg-config files should go into <prefix>/lib, not into <prefix>/lib/<arch>
.present returns std::nullopt if the optional argument is not given by the
user -- as long as a .default_value is not defined. With a .default_value,
.present cannot be used to determine if a value is user-provided or the
default.
.is_used fills that role and only returns true if the argument was passed
by the user.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
The default behavior with optional arguments is to allow only a single use
per invocation. One alternative is to use .nargs, but this requires
previously knowing, and limiting, the quantity of values. The .append
method removes the restriction on repeats for a single Argument.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
While the implicit conversions from `1` to `true` work correctly, this
avoids the conversions.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>