* tweak the parsing of files for flags with disable_flag_override, basically allow true as a valid value to be interpreted as the default in that case
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* test for out of bounds long long
* style: pre-commit.ci fixes
* change to use std types
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* the get_option_group definition was missing from the splitting of the calls.
* style: pre-commit.ci fixes
* the get_option_group definition was missing from the splitting of the calls.
* style: pre-commit.ci fixes
* add test for missing function
* style: pre-commit.ci fixes
* add test for get_option_group
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add a few more coverage tests
* style: pre-commit.ci fixes
* try to fix pre-commit issues
* update mdlint style as a test
* style: pre-commit.ci fixes
* fix test
* switch test to not generate warning
* add a few more tests
* tweak the conanfile and appveyor to debug issue
* update tests
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add some more tests for coverage and fix some confusing error situations with config files.
* style: pre-commit.ci fixes
* fix warning
* ci: fix coverage
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* add some coverage tests, and fix the issue with negated flags and config files
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* ci: include windows 2022
* fix visual studio 2022 issue with std::array and type detection
* style: pre-commit.ci fixes
* warning fixes
Co-authored-by: Philip Top <top1@llnl.gov>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Philip Top <phlptp@gmail.com>
update conan and azure-pipelines to fix gcc 4.8 issue
make the CLI11 target sources only for newer CMake
Change the cmake to use subdirectory and move the library generation and warnings to separate files.
* wrap min and max in parenthesis for Visual studio 2017 and earlier compatibility
* try pre-commit to detect min/max issues
* actually fix the identified issues from the new check
* more min/max fixes
* fix the issue where subcommand callbacks would be triggered multiple times if specified as configurable.
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add a counting flag to address and issue with optional<bool> and make the flags more consistent
* move the add_flag to a single operation and add a Sum multi option policy
* style: pre-commit.ci fixes
* remove sum_flag_vector overloads
* style: pre-commit.ci fixes
* add limits include
* style: pre-commit.ci fixes
* fix some other warnings
* update docs describing the multi_option_policy
* Apply suggestions from code review
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* allow the trigger on parse modifier to work with positional arguments as well
* style: pre-commit.ci fixes
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add tests which suppose to pass
* Update ConfigFileTest.cpp
* Update ConfigFileTest.cpp
* style: pre-commit.ci fixes
* add the possibility for an empty vector result if allowed.
* style: pre-commit.ci fixes
* add empty vector command line tests
* update book and readme
* add no default test
Co-authored-by: puchneiner <90352207+puchneiner@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* meson: add support for testsuite
* meson: fix deprecation warning for run_command with unchecked return code
This would implicitly default to false, so if something bizarre happened
and the command errored out, meson would consider that fine. Now meson
emits a warning about this deprecated legacy behavior, suggests that it
will eventually change, and, most importantly, prevents a warning-free
build.
Suppress the warning by manually specifying the sensible behavior, which
is to fail on errors.
* meson: download catch2 on demand if a system version is unavailable
Produced by running `meson wrap install catch2` and checking the results
into git.
No modifications to the build files are expected; this makes use of
https://mesonbuild.com/Wrap-dependency-system-manual.html#provide-section
* style: pre-commit.ci fixes
* ci: add meson build to the CI
* ci: meson doesn't depend on ninja or or have a ninja extra
* ci: minor cleanup to Meson job
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
* Add a transform/validator that checks for files on a default path.
* update docs and add tests and capability of chaining the FileOnDefaultPath transform
* style: pre-commit.ci fixes
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* add test of "or" operation and few doc additions
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* add an option to validate optional arguments like in a vector. This can resolve some issues with separating positionals from vector arguments
* style: pre-commit.ci fixes
* add some updates to the book
* style: pre-commit.ci fixes
* fix some precommit issues
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* remove the symbolic link in the meson test
* update python version in meson test
* remove directory from git and add directory creation into azure scripts
* remove the generated symlink
* Update azure-pipelines.yml
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* update the range error output to be able to be used by more types, and better printouts in some situations.
* style: pre-commit.ci fixes
* add test
* style: pre-commit.ci fixes
* fix the test
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add a few tests related to github issues
* change how the default is displayed in the help message prev was =XXXX, this was confusing in some cases particularly with flags or with multiple option names. Now is [default=XXXX] which makes it clearer what the value represents.
* Try to fix RTTI issue
* style: pre-commit.ci fixes
* Fix subcommand callbacks being called multiple times if in an option group
* style: pre-commit.ci fixes
* remove extra group call
* change [default=XXXXD] to just [XXXXX] for the default specification
* update changelog
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix the compile issues with the boost<optional> tests and catch
* tests: add Boost test (back)
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
* Add some missing modifiers on the options to the docs and clarify some of them.
* style: pre-commit.ci fixes
* add a more clear force callback and callback on parse modifier for options.
* update the book with new modifiers
* update documentation and add tests
* style: pre-commit.ci fixes
* more updates to the readme
* update formatting
* rework the trigger_on_parse to better support more complex option types
* fix formatting errors
* Update include/CLI/Option.hpp
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: Henry Schreiner <henry.fredrick.schreiner@cern.ch>
* add some capabilities to the config parser and a stream parser
* style: pre-commit.ci fixes
* add additional tests for the config parser
* additional tests of config sections and indexing
* style: pre-commit.ci fixes
* add initialization for member variables
* warning and error fixes
* add test for `parse_from_stream`
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add a test for std::map
* add some test of the relaxed naming and other checks
* add validator for aliases, group names and option groups
* add extra tests and update readme
* style: pre-commit.ci fixes
* update the book chapters
* fix codacy issue
* Apply suggestions from code review
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Add configuration output multi-line description tests
This adds tests for the application's description as well as option
groups and subcommands.
See #592.
* Fix commenting of configuration output multi-line descriptions
* Fix excessive call to subcommand's final_callback
When parse_complete_callback_ is set there is an extra call to
run_callback() inside the App::_parse(std::vector<std::string>&) method.
This extra call also excessively calls a final_callback_ (when it is
also set) for the command and (since it is recursive) for it's
subcommands.
This commit adds extra boolean parameter for the run_callback() method
allowing to explicitly suppress calling to final_callback_. The value of
this parameter is also propagated to recursive calls to run_callback().
Fixes#572
* fix: main app should run final_callback, add tests
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>