BCP(1)
π BCP β the manual page, but make it make sense
okay bestie, so this is BCP(1), living under the Boost C++ Libraries Documentation umbrella. Basically? It's the little tool that lets you grab just a slice of Boost instead of the whole entire buffet. π
β¨ NAME β¨
bcp β extract subsets of Boost. that's it. that's the whole vibe. she takes a piece, she takes the deps, she leaves the rest of Boost at home. π
πΈ SYNOPSIS πΈ
bcp --list [options] module-list
bcp [options] module-list output-path
bcp --report [options] module-list html-file
bcp --help
π¦ DESCRIPTION π¦
So here's the deal: bcp copies all the files, including dependencies, that it finds in module-list over to output-path. and output-path? it has to already exist. she does not create it for you. she is not your landlord. π
With --list, she prints the list of all the files in module-list, including dependencies. no copying, just looking. window shopping, if you will. π
With --report, she writes the HTML report to html-file.
With --help, she prints a quick usage reminder. bless. π«Ά
Lowkey who is this for? it's useful for Boost authors who wanna distribute their library separately from Boost, and for Boost users who wanna ship a subset of Boost alongside their app. both slay, honestly.
π§ module-list
When the --scan option is not used, this is a list of Boost files or library names to copy. It can be:
- The name of a tool: for example
"build"will find"tools/build". - The name of a library: for example
"regex". - The title of a header: for example
"scoped_ptr"will find"boost/scoped_ptr.hpp". - The name of a header: for example
"scoped_ptr.hpp"will find"boost/scoped_ptr.hpp". - The name of a file: for example
"boost/regex.hpp".
When the --scan option is used, this is a list of (probably non-boost) files to scan for Boost dependencies β and the files in the module list are not therefore copied/listed. she's just using them as clues, bestie. detective mode. π
π₯ File dependencies
- C++ source files are scanned for
#includes, all#includespresent in the Boost source tree will then be scanned for their dependencies and so on. it's giving chain reaction. it's giving dominoes. π’ - 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_mainas an entry point). - HTML files are scanned for immediate dependencies (images and style sheets, but not links).
π HTML report contains:
- all the licenses in effect, plus the files using each license, and the copyright holders using each license
- any files with no recognizable license (please report these to the Boost mailing lists)
- any files with no recognizable copyright holders (please report these to the Boost mailing lists)
- all the copyright holders and the files on which they hold copyright
- file dependency information - indicates the reason for the inclusion of any particular file in the dependencies found
π OPTIONS π
--boost=pathβ sets the location of the Boost tree to path. point her at the tree, she'll do the rest. π³--scanβ treat the module list as a list of (possibly non-boost) files to scan for Boost dependencies. no copy, just sniffing around. π΅οΈ--cvsβ only copy files under CVS version control. vintage. retro. a little nostalgic, honestly. π°οΈ--unix-linesβ make sure that all copied files use Unix style line endings. she said consistency or nothing. β¨
π 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. okay so she's picky, but like, in a focused way. π
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. combo meal. π
bcp --scan --boost=/boost foo.cpp bar.cpp boost
Scans the [non-boost] files foo.cpp and bar.cpp for Boost dependencies and copies those dependencies to the sub-directory boost.
bcp --report regex.hpp boost-regex-report.html
Creates a HTML report called boost-regex-report.html for the Boost module regex.hpp.
π AUTHORS π
Author of bcp is John Maddock.
Author of this manpage is Domenico Andreoli, who copied stuff from bcp --help and the HTML documentation. (king behavior, honestly β sourcing your material is main character energy. π«Ά)
okay that's the whole page!! it came from the Boost C++ Libraries, dated March 2006, filed under BCP(1). go extract your lil subset, bestie, you've got this. πβ¨π¦π
π¦ where this page comes from
- debian bookworm: libboost1.74-tools-dev 1.74.0+ds1-21 Β· BSL-1.0
- debian bookworm: libboost1.81-tools-dev 1.81.0-5+deb12u1 Β· BSL-1.0
- debian trixie: libboost1.83-tools-dev 1.83.0-4.2 Β· BSL-1.0
- debian trixie: libboost1.88-tools-dev 1.88.0-1 Β· BSL-1.0
- ubuntu jammy: libboost1.74-tools-dev 1.74.0-14ubuntu3 Β· BSL-1.0
- ubuntu noble: libboost1.74-tools-dev 1.74.0+ds1-23.1ubuntu3 Β· BSL-1.0
- ubuntu noble: libboost1.83-tools-dev 1.83.0-2.1ubuntu3 Β· BSL-1.0
- ubuntu noble: libboost1.83-tools-dev 1.83.0-2.1ubuntu3.2 Β· BSL-1.0
- ubuntu questing: libboost1.83-tools-dev 1.83.0-5ubuntu1
- ubuntu questing: libboost1.83-tools-dev 1.83.0-5ubuntu1.1
- ubuntu questing: libboost1.88-tools-dev 1.88.0-1.4ubuntu1
- ubuntu resolute: libboost1.83-tools-dev 1.83.0-5ubuntu5 Β· BSL-1.0
- ubuntu resolute: libboost1.88-tools-dev 1.88.0-1.4ubuntu4 Β· BSL-1.0
- ubuntu resolute: libboost1.90-tools-dev 1.90.0-6ubuntu1 Β· BSL-1.0
- ubuntu stonking: libboost1.90-tools-dev 1.90.0-6.1ubuntu1 Β· BSL-1.0
- ubuntu stonking: libboost1.92-tools-dev 1.92.0-3 Β· BSL-1.0
- Copyright 2006 Domenico Andreoli <cavok@debian.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms