Exporting without installation
How can we make the targets of project A
available to the consuming project B
? Usually, we'd reach for the find_package()
command, but that would mean that we'd need to create a package and install it on the system. That approach is useful, but it takes some work. Sometimes, we just need a really quick way to build a project and make its targets available for other projects.
We could save some time by including the main listfile of A
: it contains all the target definitions already. Unfortunately, it also potentially contains a lot of other things: global configuration, requirements, CMake commands with side effects, additional dependencies, and perhaps targets that we don't want in B
(such as unit tests). So, let's not do that. It's better to achieve this by providing a target export file that the consuming project, B
, can include with the include()
command:
cmake_minimum_required(VERSION 3.20.0) project(B) include(/path...