...

/

Using FetchContent Modules

Using FetchContent Modules

Let's learn about how to import and use FetchContent.

Nowadays, it is recommended to go with the FetchContent module to import external projects. This module has been available in CMake since version 3.11, but we recommend using at least 3.14 to work with it effectively.

The FetchContent module

Essentially, it's a high-level wrapper around ExternalProject, offering similar functionality and more. The key difference is in the stage of execution—unlike ExternalProject, FetchContent populates dependencies during the configuration stage, bringing all the targets declared by an external project to the scope of the main project. This way, we can use them exactly like the ones we defined ourselves.

The usage of FetchContent module requires three steps:

  1. Include the module in our project with include(FetchModule).

  2. Configure dependencies with the FetchContent_Declare() command.

  3. Populate dependencies with the FetchContent_MakeAvailable() command—download, build, install, ...