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:436
Parse command-line arguments for GDAL utilities.
Definition: gdalargumentparser.h:61
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:378
Argument & add_open_options_argument(CPLStringList &var)
Add "-oo KEY=VALUE" argument for open options, and store its value into var.
Definition: gdalargumentparser.cpp:205
void display_error_and_usage(const std::exception &err)
Format an exception as an error message and display the program usage.
Definition: gdalargumentparser.cpp:82
GDALArgumentParser * get_subparser(const std::string &name)
Get a subparser by name (case insensitive)
Definition: gdalargumentparser.cpp:404
Argument & add_creation_options_argument(CPLStringList &var)
Add "-co KEY=VALUE" argument for creation options, and store its value into var.
Definition: gdalargumentparser.cpp:178
void parse_args_without_binary_name(CSLConstList papszArgs)
Parse command line arguments, without the initial program name.
Definition: gdalargumentparser.cpp:274
Argument & add_input_format_argument(CPLStringList *pvar)
Add "-if format_name" argument for input format, and store its value into *pvar.
Definition: gdalargumentparser.cpp:138
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:164
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:308
std::string usage() const
Return usage message.
Definition: gdalargumentparser.cpp:94
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:251
void add_extra_usage_hint(const std::string &osExtraUsageHint)
Adds an extra usage hint.
Definition: gdalargumentparser.cpp:110
void parse_args(const CPLStringList &aosArgs)
Parse command line arguments, with the initial program name.
Definition: gdalargumentparser.cpp:450
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:261
Argument & add_output_type_argument(GDALDataType &eDT)
Add "-ot data_type" argument for output type, and store its value into eDT.
Definition: gdalargumentparser.cpp:233
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:413
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:192
Argument & add_quiet_argument(bool *pVar)
Add -q/–quiet argument, and store its value in *pVar (if pVar not null)
Definition: gdalargumentparser.cpp:120
GDALArgumentParser * add_subparser(const std::string &description, bool bForBinary)
Create and add a subparser to the argument parser, keeping ownership.
Definition: gdalargumentparser.cpp:395
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:1179
Various convenience functions for working with strings and string lists.
Public (C callable) GDAL entry points.
GDALDataType
Definition: gdal.h:48