summaryrefslogtreecommitdiff
path: root/cli/cli
AgeCommit message (Collapse)AuthorFilesLines
2023-08-22Allow nested lists in documentation for HTML outputBoris Kolpackov1-7/+13
2023-08-07Fix TOC generation with multiple string fragments using --html-heading-mapBoris Kolpackov1-11/+29
2023-06-26If --std option value is c++11 or later then generate 'noexcept' instead of ↵Karen Arutyunov2-34/+42
'throw()' for exception types member functions
2023-03-20Add support for std::multimapKaren Arutyunov2-0/+114
2022-11-22Fix diag builtin callsBoris Kolpackov1-1/+1
2022-09-20Add --generate-dep optionKaren Arutyunov11-29/+378
2022-09-16Fix parser to use absolute paths as keys for include mapKaren Arutyunov1-2/+2
2022-09-12Move options variables from target scopes to buildscript scopesKaren Arutyunov1-5/+5
2022-09-08Make build graph configuration-independentKaren Arutyunov5-59/+86
2022-06-30Add support for using bool with std::vector, std::set, and std::mapKaren Arutyunov3-45/+106
2022-02-18Add --export-symbol optionKaren Arutyunov8-23/+117
2021-11-19Fortify tests against NDEBUGKaren Arutyunov2-0/+6
2021-11-09Add --ascii-tree for translating UTF-8 tree(1) output to ASCIIBoris Kolpackov10-6/+136
2021-09-20Use ad hoc recipe for parsing code and documentation generatingKaren Arutyunov6-70/+220
The overall approach is to store pre-generated bootstrap options.?xx and cli.{1,xhtml} and automatically update them in the development build (config.cli.develop=true). See README.md in the root of the repository for details.
2021-09-10Add multi-argument grouping support in group_scannerBoris Kolpackov4-58/+138
2021-08-03Add support for tracking argument/option positionBoris Kolpackov3-42/+175
The scanner interface now provides the position() function that returns a monotonically-increasing number which, if stored, can later be used to determine the relative position of the arguments. There is also now a parser implementation for std::pair<T, std::size_t> which parses the value T into the first half of the pair and stores the option position in the second half. Together, this can be used to establish the relative position of different options, for example: class options { std::vector<std::pair<std::uint64_t, std::size>> --config-id; std::vector<std::pair<std::string, std::size>> --config-name; }; cli::argv_scanner scan (argc, argv); options ops (scan); // Iterate over --config-id and --config-name options in the order // specified by the user. // auto ii (ops.config_id ().begin ()); auto ni (ops.config_name ().begin ()); for (size_t i (0), n (scan.position ()); i != n; ++i) { if (ii != ops.config_id ().end () && ii->second == i) { // Handle *ii. ++ii; } if (ni != ops.config_name ().end () && ni->second == i) { // Handle *ni. ++ni; } }
2021-02-24Adapt to cutl/ to libcutl/ renameKaren Arutyunov13-20/+20
2020-12-08Regenerate options parsing codeKaren Arutyunov2-139/+155
2020-12-08Complete options file path using referencing file path as baseKaren Arutyunov1-2/+17
2020-10-05Add missing spaces in generated codeKaren Arutyunov1-2/+2
2020-09-12Fix generated set and map parsers so that comparison predicate can also be ↵Karen Arutyunov1-13/+13
specified
2020-06-19Fix misleading indentationBoris Kolpackov1-2/+2
2020-06-09Add name to metadata for cli executableBoris Kolpackov2-0/+2
2020-06-09Add metadata variable prefix for cli executableKaren Arutyunov2-2/+2
2020-05-28Get rid of trailing spaces in generated codeBoris Kolpackov3-90/+98
2020-04-29Add --suppress-undocumented for usage and regenerateBoris Kolpackov2-3/+1
2020-04-27Update metadata protocolBoris Kolpackov7-15/+49
2020-04-27Separate tests and examples into individual packagesKaren Arutyunov74-0/+21812
Also make cli module to be explicitly enabled via the config.cli configuration variable.