Since Richard is starting to work on creating the C++ side of Hail, I thought I should share some of the tools I found while researching C++. I haven’t had a chance to really look into any of these, so this is mostly just a link dump, with some short summary of my impression of how these are viewed by the community.
Here is another much more comprehensive list of C++ tools.
Gtest and boost are the old standards, but I’m guessing heavier than we need or want. Catch seems very popular, and doctest is a newer framework inspired by catch but supposedly faster and lighter. Both look pretty nice to me.
As far as I know, Conan is the most mature attempt at a package manager for C++. It’s still young, but recently hit v1.0. I’ve heard good things, but haven’t looked at it in any depth. Cget appears to be something much lighter. A package manager isn’t necessary, but if any have reached sufficient maturity, it could make our lives easier. I know this is an area the C++ community is actively trying to improve (along with build systems).
Cmake is the de facto standard, but I’ve never heard of anybody who actually likes it. We might not have a choice, but it’s probably worth a look at some of the alternatives. Hopefully we can migrate to one build system that works for our entire codebase across C++/Python/Scala/Java.