1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-04-29 04:03:52 +00:00

904 Commits

Author SHA1 Message Date
Christoph Bachhuber
6cc757f769 Fix includes in examples (#407)
* Fix includes in examples

* Fix order

* Align with other subcommand files

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2020-01-18 11:58:02 -05:00
Christoph Bachhuber
b856c0ba9c Add cpplint to CI (#400)
* Add cpplint config file

* Add cpplint to CI

* Add checks

* Add docker container tag

* Unindent container

As suggested in code review

Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>

* Fix cpplint issues

* Fix clang-format

* Include and fix modern cpplint runtime/int

* Include and fix cpplint build/include_order

* Revert "Include and fix cpplint build/include_order"

This reverts commit bddb6a2d6744c5397f387ccd03416a1ec5e29862.

* Update explanation, sort alphabetically

* Implement suggestion from code review

Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>

* Include cstdint header, prefix its symbols with std::

* Forgot std::

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2020-01-18 08:53:45 -05:00
allcontributors[bot]
93c90d1d93 docs: add jgerityneurala as a contributor (#406)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]
2020-01-15 20:59:22 -05:00
James Gerity
2aa377d016 Fix spelling of option_defaults() (#405) 2020-01-15 20:40:27 -05:00
Philip Top
e0c882ae3b Address issue #402 (#404)
* fix some typos in the book and clarify fallthrough on subcommands in the readme

* remove trailing whitespace
2020-01-15 20:38:04 -05:00
allcontributors[bot]
602df7581b docs: add KOLANICH as a contributor (#401)
* docs: update README.md

* docs: update .all-contributorsrc
2020-01-13 10:40:59 -05:00
KOLANICH
4903b698a9 Enhancements in building deb packages: (#399)
* Fixed building deb packages, broken because of lack contact field.
* Added some missing metadata.
* Set the name according to the convention.
2020-01-13 10:40:34 -05:00
Henry Schreiner
4b3a6b6214
Add std checking and try to fix filesystem being used on macOS 10.14 (#397)
* Add std checking and try to fix filesystem being used on macOS 10.14

* Adding extra check recommeded by @phlptp

* suppress  the double to int warning in msvc 2019 in the optional test

Co-authored-by: Philip Top <top1@llnl.gov>
2020-01-09 13:48:19 -05:00
allcontributors[bot]
a609605db5 docs: add slurps-mad-rips as a contributor (#395)
* docs: update README.md

* docs: update .all-contributorsrc
2020-01-09 09:54:32 -05:00
Henry Fredrick Schreiner
7f47f9926f Fix for install=off 2020-01-09 09:53:58 -05:00
Henry Schreiner
0cc8806ec5 fixup! CMake updates from @slurps-mad-rips 2020-01-09 09:53:58 -05:00
Henry Schreiner
a08e25ea7b Adding action check 2020-01-09 09:53:58 -05:00
Isabella Muerte
60e2932356 CMake updates from @slurps-mad-rips 2020-01-09 09:53:58 -05:00
Henry Schreiner
c356ec8702 Adding CMake 3.4 check, 2x faster CUDA build 2020-01-09 09:53:58 -05:00
Christoph Bachhuber
efbdd604af Refactor clang-tidy (#389)
* Make CI fail with readability-container-size-empty flag

* Make CI fail with cppcoreguidelines-owning-memory flag

* Add all google checks, exclude specific ones

* Apply clang-tidy fixes

* Make timer constructors explicit

* Add check for unscoped namespaces

* Replace unscoped namespace by using-declaration

* Replace unscoped namespace by using-declaration
2020-01-08 17:32:30 -05:00
Henry Schreiner
8570ffb564
Check for switch enum (#393)
* Check for switch enum

* Add missing cases
2020-01-08 10:17:36 -05:00
Andrew Hardin
417a978aba Add missing case to resolve -Wswitch-enum. (#392) 2020-01-07 23:32:41 -05:00
Henry Schreiner
7a85aa9118
Update CHANGELOG.md 2020-01-06 14:21:25 -05:00
Henry Schreiner
5d07c46efe Adding google-explicit-constructor fixes
Used '-DCLI11_CLANG_TIDY=ON -DCLI11_CLANG_TIDY_OPTIONS=-fix;-checks=google-explicit-constructor"'
2020-01-06 14:16:36 -05:00
Henry Schreiner
4bfcc0e9c7 Fix error with clang tidy 2020-01-06 14:16:36 -05:00
Henry Schreiner
ab94ee7e81 clang-tidy correctly run by CI 2020-01-06 14:16:36 -05:00
Henry Schreiner
59052a6b27
Update changelog (#383)
* Update changelog

[skip ci]

* Use code for maintainers instead

* Generate file with GitHub Actions

* Apply suggestions from code review

Co-Authored-By: Philip Top <phlptp@gmail.com>

* Adding default val and combine one line

Co-authored-by: Philip Top <top1@llnl.gov>
2020-01-02 17:38:44 -05:00
Philip Top
5b17abf22f default_val option call (#387)
* Fix invalid callback calls for default_val Option function.  the update adds a flag variable to control it, makes default_val exception safe and a template to convert from actual value types.

* update readme and fix some compilation issues on older compilers

* revert README.md with mistake erasures

* Update README.md

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2020-01-02 17:38:26 -05:00
Philip Top
c67ab9dd43 Config file handling refactor. (#362)
Refactor some of the configuration file handling code.  Make it easier to get the actual file that was processed, and allow extras in the config file to be ignored (default now), captured or errored.

fix std::error reference and formatting

add test for required but no default and fix a shadow warning on 'required' from gcc 4.8

Test correctness of config write-read loop

fix config generation for flag definitions

make the config output conform with toml

continue work on the config file interpretation and construction

get all the ini tests working again with the cleaned up features.

update formatting

rename IniTest to ConfigFileTest to better reflect actual tests and add a few more test of the configTOML
disambiguate enable/disable by default to an enumeration, and to make room for a configurable option to allow subcommands to be triggered by a config file.
add a ConfigBase class to generally reflect a broader class of configuration files formats of similar nature to INI files

add configurable to app and allow it to trigger subcommands

add test of ini formatting

add section support to the config files so sections can be opened and closed and the callbacks triggered as appropriate.

add handling of option groups to the config file output

add subcommand and option group configuration to config file output

subsubcom test on config files

fix a few sign comparison warnings and formatting

start working on the book edits for configuration and a few more tests

more test to check for subcommand close in config files

more tests for coverage

generalize section opening and closing

add more tests and some fixes for different configurations

yet more tests of different situations related to configuration files

test more paths for configuration file sections

remove some unused code and fix some codacy warnings

update readme with updates from configuration files

more book edits and README formatting

remove extra space

Apply suggestions from code review

Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>

fix some comments and documentation

fix spacing

Rename size_t -> std::size_t

Fix compiler warnings with -Wsign-conversion

Fix new warnings with -Wsign-conversion in PR
2019-12-31 11:28:25 -05:00
Henry Schreiner
d5cd986046 Rename size_t -> std::size_t 2019-12-31 10:35:24 -05:00
Henry Schreiner
ed7e0dcdeb Fix compiler warnings with -Wsign-conversion 2019-12-31 10:35:24 -05:00
Henry Schreiner
9ef88ee93d
Add C++11 check for Clang, protect C++14 test (#381)
* Add C++11 check for macOS

* Update azure-pipelines.yml

* Constexpr pair is C++14+ only on some impls
2019-12-30 18:33:28 -05:00
Henry Schreiner
8e8746a907
Removing deprecated features (#380) 2019-12-30 17:52:44 -05:00
Henry Schreiner
c901ac4bed
All-Contributors (#379)
* 📝 Add @henryiii as a contributor

* 📝 Add @phlptp as a contributor

* 📝 Add @cbachhuber as a contributor

* 📝 Add @lambdafu as a contributor

* 📝 Update @lambdafu as a contributor

* 📝 Update @lambdafu as a contributor

* 📝 Add @SkyToGround as a contributor

* 📝 Add @dvj as a contributor

* 📝 Add @lczech as a contributor

* 📝 Add @rafiw as a contributor

* 📝 Add @mensinda as a contributor

* 📝 Add @jbriales as a contributor

* 📝 Update @jbriales as a contributor

* 📝 Add @seanfisk as a contributor

* 📝 Add @fpeng1985 as a contributor

* 📝 Add @almikhayl as a contributor

* 📝 Add @andrew-hardin as a contributor

* 📝 Add @SX91 as a contributor

* 📝 Add @helmesjo as a contributor

* 📝 Add @skannan89 as a contributor

* 📝 Add @kraj as a contributor

* 📝 Add @mogigoma as a contributor

* 📝 Add @msoeken as a contributor

* 📝 Add @nathanhourt as a contributor

* 📝 Add @pleroux0 as a contributor

* 📝 Add @chfast as a contributor

* Fixes

* 📝 Add @peterazmanov as a contributor

* 📝 Add @delpinux as a contributor

* 📝 Add @metopa as a contributor

* Contributing guide

* 📝 Add @ChristosT as a contributor

* 📝 Add @deining as a contributor

* 📝 Add @elszon as a contributor

* 📝 Add @ncihnegn as a contributor

* 📝 Add @nurelin as a contributor

* 📝 Add @ryan4729 as a contributor

* Remove extra parts

* More cleanup

* Instructions added
2019-12-30 15:34:50 -05:00
Christoph Bachhuber
11519d8c75 Minor fixes in enum examples (#377)
* Initialize variable, use std::map, update comment

* Analog changes as in enum.cpp, clarify ostream operator

* Add enum_ostream, fix typo
2019-12-30 14:05:09 -05:00
Philip Top
ba07592ed8 add //LCOV_EXCL_STOP for coverage exclusion sections (#376)
* add //LCOV_EXCL_STOP for coverage exclusion sections

* try using different // LCOV exclusions
2019-12-28 21:58:24 -05:00
Philip Top
73950eb6a2 add a cmakeLists for the book (#374)
* add a cmakeLists for the book to add a project in visual studio so the book can be edited with the code

* remove trailing whitespace

* remove restrictions on MSVC and use a globbing expression in finding the files.  Also add a check to make sure book directory exists which seems to be important on appveyor

* apparently doxygen was updated and the old download script no longer worked

* try a different url for the older download

* use github source tar
2019-12-28 17:59:47 -05:00
Khem Raj
c72057d877 clang and cross-compile fixes (#373)
* Add CLANG_TIDY check

Signed-off-by: Khem Raj <raj.khem@gmail.com>

* Use GNUInstallDirs instead of hard-coded path

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-12-28 17:55:47 -05:00
Philip Top
b979d3a370 Bug fix for issue 369. (#370)
* Bug fix for issue 369.  The default_val call was not resetting the option state after it had executed the callback and reset the results vector, allowing the possibility of an empty results getting passed to some conversions functions.

* add the source and attribution of the new test

* update formatting
2019-12-17 09:17:31 -05:00
deining
df7f4f6d1c Fixing wrong default value (#368)
Updating link o Click homepage
2019-12-15 19:40:10 -05:00
Henry Schreiner
704e1692a4 Fix book links 2019-12-12 19:36:47 -05:00
Henry Schreiner
3bdbbd7875
Adding CUDA NVCC build (#365)
* Adding CUDA build

* Filter NVCC warning

* Constexpr reword
2019-12-10 11:42:32 -05:00
Christoph Bachhuber
d9379cccf5 Clang-tidy fixes (#360)
* Clang-tidy fixes

* Format

* Satisfy pre-commit hooks

* Fix getters to constref return

* Final name getter as constref
2019-12-04 21:17:06 -05:00
Philip Top
fc0f82a81f Deprecated retired options (#358)
* add ability to specify deprecated or retired options.

* add retired example and tests

* update some formatting and a few more test executions

* fix formatting on retired.cpp

* add another test to fill coverage gap for existing options that are being retired.

* add example comments

* Update readme with the descriptions of the new helper functions

* fix space on readme

* Apply suggestions from code review

Co-Authored-By: Christoph Bachhuber <cbachhuber89@gmail.com>

* add some flags to the code coverage report and update some names and add more descriptions to deprecated options

* update formatting on App
2019-12-04 21:16:30 -05:00
Philip Top
ba7b29f9f8 allow hidden option groups for help. (#356)
* allow hidden option groups for help.

* refactor condition so it continues appropriately but only prints on the desired conditions.
2019-11-30 13:30:03 -05:00
Christoph Bachhuber
7a4d376d35 Fix optional display, grammar, and link (#357) 2019-11-30 12:15:59 -05:00
Philip Top
5a25cee383 allow transform to work with arrays. (#349)
* allow transform to work with arrays.  The element_type trait required pointer_traits<T> to be defined for the type which it was for vector but not for array due to decay rules in C++, even though it was not used.  So Element type had to be split into two templates instead of a conditional.

* fix formatting

* clean up array initialization

* add constexpr array test

* add extra braces to make clang happy
2019-11-30 12:00:25 -05:00
Henry Fredrick Schreiner
67dc672e5c Using action for pre-commit 2019-11-29 21:49:05 -05:00
Henry Fredrick Schreiner
2244ecc3f3 Adding and fixing Weffc++ 2019-11-29 21:49:05 -05:00
Philip Top
5f696596d7 fix some warnings generated from klocwork static analyzer (#350)
* fix some warnings generated from klocwork static analyzer

* Some more visual studio static analyzer and clang-tidy fixes

* some formatting updates
2019-11-29 08:54:32 -05:00
Philip Top
d621658e6d Issue #339 (#348)
* add an example where the name of the enum is printed through a stream output function, which subverted the checkTransformer conversion and prevented conversion of the enumeration.

* add missing 'typename'

* try a simpler version of the value_string using const reference for all overloads

* use auto return type to match to_string return type in value_string

* remove extra spaces
2019-11-29 08:52:09 -05:00
christos
51a395ec9f Handle float type in positive number (CLIUtils#328) (#342)
* fix https://github.com/CLIUtils/CLI11/issues/328

 * use same assumptions about the size (ie double is enough) as in Number validator

* fix spelling in error message

* fix class description comment

* PositiveNumber accepts now >0 while NonNegative >=0

* update README for PositiveNumber and NonNegativeNumber

* spelling
2019-11-25 14:52:37 -05:00
Philip Top
a8d597dae4 Filedir checks (#341)
* add checks for files and directories so the code can be used in the config check

* add use of std::filesystem when available

* add some documentation

* try a verbatim section

* update formatting on validators

* update error call to use FileError::Missing

* add FileError test for invalid file

* format tweak
2019-11-25 14:50:25 -05:00
Philip Top
418b7175f5 Type size refactor (#325)
* add expanded type_size specification

* add some more checks for type_size_max

* continued work on getting type sizes more flexible

* make some more tweaks to option to split up validate and reduce sections

* git rid of exceptions on the type_size functions exceptions,  allow any number to be entered for the min and max and don't make a distinction between flags and other types.

* add expected count

* add the allow extra args flag in an option

* start working in allow_extra_args

* write some stuff in the book,  and continue working on the failing test cases

* fix a few more of the helpers tests

* a few more test cases running

* all tests pass, fixing calls in ini files

* get vector<pair> working and all tests passing

* change callback to use reference to remove allocation and copy operation

* add support and test for vector<vector<X>>

* change Validators_ to validators_ for consistency

* fix linux warnings and errors by reording some templates and adding some typename keywords

* add support for std::vector<X> as the cross conversion type so optional<std::vector<X>> is supported using the full template of add_option.

* a few more test cases to take care of some coverage gaps

* add missing parenthesis

* add some more tests for coverage gaps

* add test for flag like option

* add transform test for `as<X>` function and make it pass through the defaults

* add a few more tests and have vector default string interpreted correctly.

* add test for defaulted integer,  and route default string for defaulted value which would otherwise be empty

* some code cleanup and comments and few more test coverage gap tests

* add more tests and fix a few bugs on the type size and different code paths

* remove path in results by fixing the clear of options so they go back to parsing state.

* get coverage back to 100%

* clang_tidy, and codacy fixes

* reorder the lexical_conversion definitions

* update some formatting

* update whitespace on book chapter
2019-11-10 05:36:16 +10:30
Jesus Briales
41d3c967d7 Add test for non-const version of App::get_options (#337)
After https://github.com/CLIUtils/CLI11/pull/329 the get_options version being used in the test was the non-const.
Forced testing on non-const by using a const-ref to the app.
Also added testing to ensure the list of options of both const and non-const are the same as expected.
2019-10-27 13:53:54 -04:00