Bravo, John ! I have been hoping someone would come up with a way by which developers could figure out fairly easily what part of Boost might need to be distributed if only a single or a few Boost libraries were being used.
John Maddock wrote: > Folks, > > I've put together a small tool for managing boost dependencies called > bcp (for boost copy). > > The bcp utility is a tool for extracting subsets of Boost, it's > useful for Boost authors who want to distribute their library > separately from Boost, > and for Boost users who want to distribute a subset of Boost with > their application. > > Examples: > ~~~~~~~ > > bcp scoped_ptr /foo > > Copies boost/scoped_ptr.hpp and dependencies to /foo. > > bcp boost/regex.hpp /foo > > Copies boost/regex.hpp and all dependencies > including the regex source code (in libs/regex/src) and build files > (in libs/regex/build) to /foo. Does not copy the regex > documentation, test, or example code. > > bcp regex /foo > > Copies the full regex lib (in libs/regex) including > dependencies (such as the boost.test source required by the regex test > programs) to /foo. > > bcp regex config build /foo > > Copies the full regex lib (in libs/regex) plus > the config lib (libs/config) and the build system (tools/build) to > /foo including all the dependencies. > > Syntax: > ~~~~~ > > bcp --list [options] module-list > > Outputs a list of all the files in > module-list including dependencies. > > bcp [options] module-list output-path > > Copies all the files found in > module-list to output-path > > Options: > ~~~~~~ > > --boost=path > > Sets the location of the boost tree to path. > > --scan > > Treats the module list as a list of (probably non-boost) files to scan > for boost dependencies, the files listed in the module list are not > copied (or listed), only the boost files upon which they depend. > > --cvs > > Only copy files under cvs version control. > > --unix-lines > > Make sure that all copied files use Unix style line endings. > > module-list: > ~~~~~~~~ > > When the --scan option is not used then a list of boost files or > library names to copy, this can be: > > 1.. The name of a tool: for example "build" will find "tools/build". > 2.. The name of a library: for example "regex". > 3.. The title of a header: for example "scoped_ptr" will find > "boost/scoped_ptr.hpp". What does this mean, the "title" of a header ? > 4.. The name of a header: for example "scoped_ptr.hpp" will find > "boost/scoped_ptr.hpp". Difference between 3 and 4 ? > 5.. The name of a file: for example "boost/regex.hpp". > > When the --scan option is used, then a list of (probably non-boost) > files to scan for boost dependencies, the files in the module list > are not therefore copied/listed. > > output-path: > ~~~~~~~~ > > The path to which files will be copied (this path must exist). > > Dependencies > > File dependencies are found as follows: > > C++ source files are scanned for #includes, all #includes present in > the boost source tree will then be scanned for their dependencies and > so on. > > C++ source files are associated with the name of a library, if that > library has source code (and possibly build data), then include that > source in the dependencies. > > C++ source files are checked for dependencies on Boost.test (for > example to see if they use cpp_main as an entry point). > > HTML files are scanned for immediate dependencies (images and style > sheets, but not links). > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > As usual comments etc are most welcome, also should a utility/tool > such as this go through the review process, before eventually living > under > tools/bcp? > > The source is available from: www.regex.fsnet.co.uk/bcp.zip > > This requires the latest boost cvs source to build, so there is also > a file containing bcp's dependencies (obviously produced using bcp!): > www.regex.fsnet.co.uk/bcp_deps.zip How does one get the latest Boost CVS source ? I have WinCVS but have never been able to figure out how to use it to get CVS source on the Internet anywhere. Would anyone like to run me through it ? I know it has something to do with server access but I am dumbfounded by the WinCVS doc, _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost