CLI11 | command line parser for C++11 | Command Line Interface library
kandi X-RAY | CLI11 Summary
kandi X-RAY | CLI11 Summary
CLI11 is a C++ library typically used in Utilities, Command Line Interface applications. CLI11 has no bugs, it has no vulnerabilities and it has medium support. However CLI11 has a Non-SPDX License. You can download it from GitHub.
CLI11 provides all the features you expect in a powerful command line parser, with a beautiful, minimal syntax and no dependencies beyond C++11. It is header only, and comes in a single file form for easy inclusion in projects. It is easy to use for small projects, but powerful enough for complex command line projects, and can be customized for frameworks. It is tested on Azure and GitHub Actions, and was originally used by the GooFit GPU fitting framework. It was inspired by plumbum.cli for Python. CLI11 has a user friendly introduction in this README, a more in-depth tutorial GitBook, as well as API documentation generated by Travis. See the changelog or GitHub Releases for details for current and past releases. Also see the Version 1.0 post, Version 1.3 post, Version 1.6 post, or Version 2.0 post for more information. You can be notified when new releases are made by subscribing to on an RSS reader, like Feedly, or use the releases mode of the GitHub watching tool.
CLI11 provides all the features you expect in a powerful command line parser, with a beautiful, minimal syntax and no dependencies beyond C++11. It is header only, and comes in a single file form for easy inclusion in projects. It is easy to use for small projects, but powerful enough for complex command line projects, and can be customized for frameworks. It is tested on Azure and GitHub Actions, and was originally used by the GooFit GPU fitting framework. It was inspired by plumbum.cli for Python. CLI11 has a user friendly introduction in this README, a more in-depth tutorial GitBook, as well as API documentation generated by Travis. See the changelog or GitHub Releases for details for current and past releases. Also see the Version 1.0 post, Version 1.3 post, Version 1.6 post, or Version 2.0 post for more information. You can be notified when new releases are made by subscribing to on an RSS reader, like Feedly, or use the releases mode of the GitHub watching tool.
Support
Quality
Security
License
Reuse
Support
CLI11 has a medium active ecosystem.
It has 2625 star(s) with 305 fork(s). There are 36 watchers for this library.
It had no major release in the last 12 months.
There are 81 open issues and 287 have been closed. On average issues are closed in 148 days. There are 10 open pull requests and 0 closed requests.
It has a neutral sentiment in the developer community.
The latest version of CLI11 is v2.3.2
Quality
CLI11 has 0 bugs and 0 code smells.
Security
CLI11 has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
CLI11 code analysis shows 0 unresolved vulnerabilities.
There are 0 security hotspots that need review.
License
CLI11 has a Non-SPDX License.
Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.
Reuse
CLI11 releases are available to install and integrate.
Installation instructions, examples and code snippets are available.
It has 189 lines of code, 10 functions and 5 files.
It has medium code complexity. Code complexity directly impacts maintainability of the code.
Top functions reviewed by kandi - BETA
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of CLI11
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of CLI11
CLI11 Key Features
No Key Features are available at this moment for CLI11.
CLI11 Examples and Code Snippets
No Code Snippets are available at this moment for CLI11.
Community Discussions
Trending Discussions on CLI11
QUESTION
Make doesn't recompile after cleaning object files
Asked 2020-Jan-04 at 01:44
I have the following makefile:
...ANSWER
Answered 2020-Jan-04 at 01:44This happens because you are using a chain of pattern rules.
Consider a simple example:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install CLI11
To use, there are several methods:.
All-in-one local header: Copy CLI11.hpp from the most recent release into your include directory, and you are set. This is combined from the source files for every release. This includes the entire command parser library, but does not include separate utilities (like Timer, AutoTimer). The utilities are completely self contained and can be copied separately.
All-in-one global header: Like above, but copying the file to a shared folder location like /opt/CLI11. Then, the C++ include path has to be extended to point at this folder. With CMake, use include_directories(/opt/CLI11)
Local headers and target: Use CLI/*.hpp files. You could check out the repository as a git submodule, for example. With CMake, you can use add_subdirectory and the CLI11::CLI11 interface target when linking. If not using a submodule, you must ensure that the copied files are located inside the same tree directory than your current project, to prevent an error with CMake and add_subdirectory.
Global headers: Use CLI/*.hpp files stored in a shared folder. You could check out the git repository to a system-wide folder, for example /opt/. With CMake, you could add to the include path via:
Global headers and target: configuring and installing the project is required for linking CLI11 to your project in the same way as you would do with any other external library. With CMake, this step allows using find_package(CLI11 CONFIG REQUIRED) and then using the CLI11::CLI11 target when linking. If CMAKE_INSTALL_PREFIX was changed during install to a specific folder like /opt/CLI11, then you have to pass -DCLI11_DIR=/opt/CLI11 when building your current project. You can also use Conan.io or Hunter. (These are just conveniences to allow you to use your favorite method of managing packages; it's just header only so including the correct path and using C++11 is all you really need.)
Via FetchContent in CMake 3.14+ (or 3.11+ with more work): you can add this with fetch-content, then use the CLI11::CLI11 target as above, and CMake will download the project in the configure stage:
All-in-one local header: Copy CLI11.hpp from the most recent release into your include directory, and you are set. This is combined from the source files for every release. This includes the entire command parser library, but does not include separate utilities (like Timer, AutoTimer). The utilities are completely self contained and can be copied separately.
All-in-one global header: Like above, but copying the file to a shared folder location like /opt/CLI11. Then, the C++ include path has to be extended to point at this folder. With CMake, use include_directories(/opt/CLI11)
Local headers and target: Use CLI/*.hpp files. You could check out the repository as a git submodule, for example. With CMake, you can use add_subdirectory and the CLI11::CLI11 interface target when linking. If not using a submodule, you must ensure that the copied files are located inside the same tree directory than your current project, to prevent an error with CMake and add_subdirectory.
Global headers: Use CLI/*.hpp files stored in a shared folder. You could check out the git repository to a system-wide folder, for example /opt/. With CMake, you could add to the include path via:
Global headers and target: configuring and installing the project is required for linking CLI11 to your project in the same way as you would do with any other external library. With CMake, this step allows using find_package(CLI11 CONFIG REQUIRED) and then using the CLI11::CLI11 target when linking. If CMAKE_INSTALL_PREFIX was changed during install to a specific folder like /opt/CLI11, then you have to pass -DCLI11_DIR=/opt/CLI11 when building your current project. You can also use Conan.io or Hunter. (These are just conveniences to allow you to use your favorite method of managing packages; it's just header only so including the correct path and using C++11 is all you really need.)
Via FetchContent in CMake 3.14+ (or 3.11+ with more work): you can add this with fetch-content, then use the CLI11::CLI11 target as above, and CMake will download the project in the configure stage:
Support
There are some other possible "features" that are intentionally not supported by this library:.
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page