-
* Add iterator (#126) and easily print-out (#223) to ParseResult
-
* Cmake Revamp I needed to do a variety of things to ensure cxxopts worked well in my own project. I created a new cmake module to abstract a lot of the logic in the main CMakelists.txt, I think it really assists in the readability of the project. Consequently a lot of logic is now written in functions. I made a lot of the project options off by default unless the project is being built standalone. As a frequent consumer of cmake libraries this is a huge issue. Since examples, tests, installation, etc. aren't things I expect/desired by default when using libraries. Co-authored-by: Juan Ramos <juanr0911@gmail.com>
-
`cxxopts` doesn't modify the contents of the argv strings. This changes the parse function to take a reference to a `const char**`.
-
Fixes #219. The example was wrong as ParseResult can't be returned out of scope of the options parser.
-
Fixes #201. Parse char type correctly and check for length.
-
Improve parsing into std::vector so that a single argument can take a list.
-
Fixes #132. Since the map of options is shared between Options and ParseResult, they should use a shared pointer instead of a reference so that ParseResult can be returned without referencing destroyed memory.
-
Allows unrecognised options to be left alone by the parser without throwing an exception.
-
This reverts commit 0f819a5cabb611ada4c41a5208c6bf1178f804be.
-
* Added const to argv type for better interoperability.
-
Fixes #102. Don't show the default value when it is a boolean and the value is false. Note that this is a bit of a hack and the implementation should probably be reevaluated in the future.
-
Fixes #72. This adds an option for positional arguments to be shown in the help output.
-
This is far from ideal, but it's the first step in moving the parse result to an immutable object so that the parser can be reused.
-
Adds generic parsing of types using `operator>>`, in particular allows parsing of floats and doubles.
-
Fixes #57. Allows spaces after the comma between the short and long option specification.
-
* remove biicode support The company/startup died in 2015 and the open source project seems to be dead as well. * define compiler warning flags globally instead of locally for every binary * add support for cmake's find_package() (refs #52) This rewrite of the main CMakeLists.txt cleans up the way ICU flags are attached to the library target and adds the cmake helper files (cxxopts-config.cmake, cxxopts-config-version.cmake, cxxopts-targets.cmake) which are needed for exporting the cxxopts target. Cmake's find_package command uses these files when the library is consumed by another project. Additionally, two new tests have been added which build the example application via add_subdirectory and find_package. * removed target_sources from interface library Adding target_sources to interface libraries and exporting them is not supported in CMake 3.1 and 3.2. Furthermore, since it is a header, it is not needed at all. * use the *_LDFLAGS instead of *_LIBARIES when linking ICU The LIBRARIES variable seems to contain only the name and not the full path.
-
Fixes #33. This PR uses cmake's interface library feature: An INTERFACE library target does not directly create build output, though it may have properties set on it and it may be installed, exported and imported. This makes it easier to include the header only library in a cmake project. After using add_subdirectory on the cxxopts directory, one simply needs to include cxxopts in their target_link_libraries, which will allow the user's target to inherit the properties of the cxxopts header library (see changes to example and test).
-
Closes #32. This adds numbers as allowed values in all parts of short and long option specifiers.
-
Closes #26. Don't show positional parameters that are a container, because they are designed for chewing up any extra parameters.
-
Fixes #30. The positional arguments are not overwritten when they have already been given on the command line.
-
This fixes the runtime error in Travis Job 17.2. The variable Options::m_next_positional was not initialised when no positional parameters were set.
-
Reorder the `parse_value` functions so that the vector-specific function can see all of the other specific parsers.
-
Also use single character \n for end of line instead of string literal.
-
* Add cxxopts.hpp as a source file to executable * Add msvc options for compiling * Add CXXOPTS_BUILD_EXAMPLES option to CMake build * This is helpful when using CMake's ExternalProject_add() * It is ON by default, but configurable from the command-line.
-
Looked like it was left over from something? Saw it when testing "--some-int-val string"