
On Sat, Sep 13, 2025 at 12:58 PM Mateusz Loskot via Boost < boost@lists.boost.org> wrote:
The project README explains it quite well. Although Python is a subjective choice to me, the whole idea of b2-ifying proxy script for CMake has a huge potential. ... I'd write it in C++. I'd contribute the features to CMake itself, as ultimate long term goal.
Yeah, I wrote it in Python just because it has quick iteration times. You're right in that if we wrote it in C++, it ships better as a part of Boost because we already require a compiler be present on the host machine. Plus, we don't actually have to do anything all that fancy to get it working. Also, I actually did realize this belongs in CMake itself and that I basically fixed CMake lol. I've wanted something like this in CMake for every single project I've ever written. To Vinnie's point and for those that don't know, c2.py is a port of b2 that does parallel CMake configurations and then can do a superbuild of all of them at the same time with full throughput. CTest support is also included this. The tool works relatively simply. We just create a root build directory, then we do a nested build directory for each configuration. We generate a superbuild ninja file in the root which includes all the child ninja files. Doing this requires us actually modify the CMake-generated ninja files but it's not that hard to make it all play nicely. We also then make a custom CTest file which enables us to run all of the tests in parallel as well. The tool supports a b2-style CLI and also a JSON file that describes the build. This is a good opportunity for Boost because it means there's one less reason to depend on b2. Currently, I'm looking for alpha testers to let me know where all the rough edges and problems are. - Christian