The code for this recipe is available at https://github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-08/recipe-04, and has a C++ example. The recipe is valid with CMake version 3.11 (and higher), and has been tested on GNU/Linux, macOS, and Windows. The code repository also contains an example compatible with CMake 3.5.
In Chapter 4, Creating and Running Tests, Recipe 3, Defining a unit test and linking against Google Test, we implemented unit testing using the Google Test framework and fetched the Google Test sources at configure time using the relatively new FetchContent module (available since CMake 3.11). In this chapter, we will revisit this recipe, focus less on the testing aspect, and dive a bit deeper into FetchContent, which provides a compact and versatile module to assemble project dependencies...