Libraries should have the following directory structure.
<libraryname> Jamroot.jam // if using bjam build include/ ... src/ // not required for header only libraries cpp files ... Jamfile.jam // other build systems - optional vcide ... example/ cpp and hpp files Jamfile.jam // other build systems - optional vcide ... test/ cpp and hpp files Jamfile.jam // other build systems - optional vcide ... doc/ html/ boostbook.css html files .... images/ png files ... // document source files - maybe one of those below docbook/ // optional xml files ... // scripts which create html makehtml.bat makehtml.sh boostbook/ // optional xml files ... // scripts which create html makehtml.bat makehtml.sh quickbook/ // optional qbk files ... // scripts which create html makehtml.bat makehtml.sh
This is a little different than the current Boost directory structure requirements. But it should look familiar to those with some experience with Boost Libraries. It's designed so that the library is contained in one directory structure and need not occupy a specific place within any higher level structure.
The library directory and files can be placed anywhere in the users file hierarchy.
There is no requirement to alter the users Boost directory. The library can be used just by making sure the include directory is available during the compilations of source files which use it.
If the library user prefers to have all his "boost like" libraries in the boost header space, he can make a link or forwarding header in his boost directory tree to accomplish this.
The library must supply a file named Jamroot.jam to support the Bjam build system.
The library must supply Jamfile.jam files for each of the src, example and test directories.
Other build system support is optional. If supplied it should be either as one file (example: bjam) or as a subdirectory with multiple files.