39 | | The following libraries are considered part of the "core" of Boost and should not be modularized at this time. Libraries may be dubbed "core" libraries due to excessive dependencies (e.g., config, type_traits), circular dependencies, or poor separation from the rest of Boost (e.g., utility). We hope that future refactoring will remove most libraries from "core" status. |
| 15 | Each time there's a new commit to Boost's trunk, [http://github.com/ryppl/boost-modularize this script] |
| 16 | modularizes a [http://github.com/ryppl/boost-svn Git repository mirroring Boost SVN] |
| 17 | and distributes the updated files into separate [http://github.com/boost-lib per-library git repositories]. |
| 18 | As [https://github.com/ryppl/boost-modularize/commits you can see], the script is being kept |
| 19 | up-to-date by Daniel Pfeifer. |
41 | | * config |
42 | | * mpl |
43 | | * preprocessor |
44 | | * type_traits |
45 | | * utility |
| 21 | The column labelled “Boost.Modularize” on the right side of the [http://bbot.boostpro.com/waterfall?show_events=true&builder=Boost.Modularize-x-Modularize&builder=Boost-vc8-win64-Integration&builder=Boost-vc7.1-win64-Integration&builder=Boost-gcc-linux-Integration&builder=Boost-vc10-win64-Integration&builder=Boost-vc9-win64-Integration&reload=none automated test page] shows the modularization |
| 22 | process itself. If that column is green, it tells you that every file is currently |
| 23 | “accounted for” and has been assigned to a module. If there are files that don't have a |
| 24 | modularized home, we get an error like [http://bbot.boostpro.com/builders/Boost.Modularize-x-Modularize/builds/1343/steps/modularize%28update%29/logs/stdio this one]. |
| 25 | (in that run, it looks like someone just added the Boost.Heap library). When that happens, Daniel get an |
| 26 | email and he fixes it. |
51 | | * spirit -> xpressive: Spirit uses Proto, which is currently part of Xpressive. Eventually, Proto will become its own top-level library, and we'll eliminate this dependency. |
52 | | * parameter -> python: Parameter uses one of the Python detail headers, and has the header boost/parameter/python.hpp that might actually belong in the Python library itself. |
| 35 | === TODOs === |
| 36 | |
| 37 | The integration testing columns are currently not all green in part because several |
| 38 | libraries have not had their test Jamfiles ported to |
| 39 | CMake yet. [https://github.com/ryppl/boost-modularize/issues/search?q=unit+tests&state=closed These tickets] document the libraries whose test Jamfiles have been ported, and [https://github.com/ryppl/boost-modularize/issues/search?q=unit+tests&state=open these] are the libraries whose Jamfiles still need to be ported. |
| 40 | Most of these should be |
| 41 | really straightforward to handle based on looking at Jamfiles and examples of commits that [https://github.com/ryppl/boost-modularize/issues/search?q=unit+tests&state=closed closed unit test tickets] (follow the link in each ticket). |
| 42 | |
| 43 | For a more complex example, see the [https://github.com/boost-lib/python/blob/master/test/CMakeLists.txt CMake file for Boost.Python], |
| 44 | graciously ported by Ravikiran Rajagopal. These are among |
| 45 | the most complex because they have to invoke Python instead of just |
| 46 | building and running C++ executables. |