12#ifndef GDALARGUMENTPARSER_H
13#define GDALARGUMENTPARSER_H
21#define argparse gdal_argparse
24#define ARGPARSE_CUSTOM_STRTOD CPLStrtodM
29#pragma warning(disable : 4702)
33#pragma GCC diagnostic push
34#pragma GCC diagnostic ignored "-Weffc++"
37#include "argparse/argparse.hpp"
40#pragma GCC diagnostic pop
47using namespace argparse;
68 std::string
usage()
const;
122 bool *store_into =
nullptr,
123 const std::string &help =
"");
150 std::map<std::string, ArgumentParser::argument_it>::iterator
151 find_argument(
const std::string &name);
152 std::vector<std::unique_ptr<GDALArgumentParser>> aoSubparsers{};
153 std::string m_osExtraUsageHint{};
String list class designed around our use of C "char**" string lists.
Definition cpl_string.h:454
Argument & add_inverted_logic_flag(const std::string &name, bool *store_into=nullptr, const std::string &help="")
Add an inverted logic (default true, false when set) flag.
Definition gdalargumentparser.cpp:390
Argument & add_open_options_argument(CPLStringList &var)
Add "-oo KEY=VALUE" argument for open options, and store its value into var.
Definition gdalargumentparser.cpp:217
void display_error_and_usage(const std::exception &err)
Format an exception as an error message and display the program usage.
Definition gdalargumentparser.cpp:94
GDALArgumentParser * get_subparser(const std::string &name)
Get a subparser by name (case insensitive).
Definition gdalargumentparser.cpp:416
Argument & add_creation_options_argument(CPLStringList &var)
Add "-co KEY=VALUE" argument for creation options, and store its value into var.
Definition gdalargumentparser.cpp:190
void parse_args_without_binary_name(CSLConstList papszArgs)
Parse command line arguments, without the initial program name.
Definition gdalargumentparser.cpp:286
Argument & add_input_format_argument(CPLStringList *pvar)
Add "-if format_name" argument for input format, and store its value into *pvar.
Definition gdalargumentparser.cpp:150
Argument & add_output_format_argument(std::string &var)
Add "-of format_name" argument for output format, and store its value into var.
Definition gdalargumentparser.cpp:176
GDALArgumentParser(const std::string &program_name, bool bForBinary)
Constructor.
Definition gdalargumentparser.cpp:24
CPLStringList get_non_positional_arguments(const CPLStringList &aosArgs)
Return the non positional arguments.
Definition gdalargumentparser.cpp:320
std::string usage() const
Return usage message.
Definition gdalargumentparser.cpp:106
Argument & add_layer_creation_options_argument(CPLStringList &var)
Add "-lco NAME=VALUE" argument for layer creation options, and store its value into var.
Definition gdalargumentparser.cpp:263
void add_extra_usage_hint(const std::string &osExtraUsageHint)
Adds an extra usage hint.
Definition gdalargumentparser.cpp:122
void parse_args(const CPLStringList &aosArgs)
Parse command line arguments, with the initial program name.
Definition gdalargumentparser.cpp:462
Argument & add_dataset_creation_options_argument(CPLStringList &var)
Add "-dsco NAME=VALUE" argument for dataset creation options, and store its value into var.
Definition gdalargumentparser.cpp:273
Argument & add_output_type_argument(GDALDataType &eDT)
Add "-ot data_type" argument for output type, and store its value into eDT.
Definition gdalargumentparser.cpp:245
bool is_used_globally(const std::string &name)
Return true if the argument is used in the command line (also checking subparsers,...
Definition gdalargumentparser.cpp:425
Argument & add_metadata_item_options_argument(CPLStringList &var)
Add "-mo KEY=VALUE" argument for metadata item options, and store its value into var.
Definition gdalargumentparser.cpp:204
Argument & add_quiet_argument(bool *pVar)
Add -q/--quiet argument, and store its value in *pVar (if pVar not null).
Definition gdalargumentparser.cpp:132
GDALArgumentParser * add_subparser(const std::string &description, bool bForBinary)
Create and add a subparser to the argument parser, keeping ownership.
Definition gdalargumentparser.cpp:407
Various convenience functions for CPL.
Core portability definitions for CPL.
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition cpl_port.h:1087
Various convenience functions for working with strings and string lists.
Public (C callable) GDAL entry points.
GDALDataType
Definition gdal.h:48