Unit Testing

There is no standard unit testing framework in C++ yet, but many options available. At our stage of development, we want a simple internal framework that allows us to run unit tests in isolation, nothing fancy, really just a way to declare tests, and run over them all at once. As we are using CMake for our build system, we also want the system to integrate with CTest.

Read More

Package Manager

Mathieu Ropert gave an excellent talk at ACCU 2019 about the state of package management in C++. He came up with a list of criteria to help select a package manager. Among the many candidates available, only Conan and Vcpkg made it through. The most relevant criteria to us is that the package manager be non-intrusive, i.e. the build system is totally independent of it.

Read More

Build System

There are several build system options one can choose from, but CMake clearly stands out in the cross-platform category, and is widely supported by library developers. It may not be the simplest/easiest build system to use, however its recent evolution (i.e. ‘modern’ features) definitely helps. CMake does also provide a few functionalities that could make it look like a legit package manager, but it really is not, and should not be used as such. The excellent book from Craig Scott on the subject, Professional CMake, A Practical Guide, is a very useful reference and user guide.

Read More