After various requests, I've licensed my boost program_options extension code accumulator.hpp under the Boost Software License 1.0. It also now supports taking an argument on construction to store the value as well as the notifier function.
To recap: the accumulator type adds support for repeated options used to increment a particular value. Often this is used for verbosity, so that
-v sets a verbosity level of one,
-vvv a level of three.
Boost's program_options library does a lot of things (such as formatting help messages and adding default values) automatically, and it means different program modules can add and handle their own options. This is exactly what we need it for.
Its main disadvantage is incomplete documentation. There are some common command-line behaviours that aren't built in, which is fine as long as they can be added. And indeed program_options is fairly extensible and flexible, which in turn is fine as long as you have documentation to tell you how to do it.
It took about a day to get Gnash built and more or less running on OpenSolaris. Surprisingly few dependencies are missing, but the ones that are (mainly the Boost C++ libraries) aren't that easy to build.
So the packages I needed to build were:
- bazaar (for retrieving Gnash trunk)
- bjam (for building boost)
- boost 1.37
- AGG 2.5 (Anti-Grain Geometry renderer)