https://learning.oreilly.com/library/view/cmake-cookbook/9781788470711