Я бы рекомендовал использовать INSTALL(TARGETS...
вместе с INSTALL(EXPORT...
Для получения полной информации запустите:
cmake --help-command INSTALL
FIND_PACKAGE
обычно используется для поиска внешнего проекта, который уже установлен (и который не был установлен с помощью команды CMake INSTALL(EXPORT...
), а ExternalProject_Add
используется для загрузки, настройки, сборки и установки внешнего проекта.
Если вы используете INSTALL(EXPORT...
с каждым из ваших библиотек и exe, а затем просто INCLUDE
установленный <target>.cmake
в вашем основном CMakeLists.txt, они станут доступны как правильные цели CMake, с их зависимостями для конфигурации уже установлен.
Относительно того, где установить эти экспортные файлы - решать только вам, но если указанный вами путь совпадает с тем, который вы используете при INCLUDE
файле позже, он должен работать нормально.