A convenient CMake framework for eliminating boilerplate