Предположим, я написал библиотеку <mylib>
, что я могу собрать установку через cmake. И у меня также есть файл <mylib>Config.cmake
, который может найти все необходимые файлы (библиотека, заголовки, ...) и экспортировать цель для библиотеки.
Если я хочу использовать библиотеку с find_package(...)
, cmake должен знать местоположение файла конфигурации. Я знаю, что могу передавать это каждый раз, когда собираю проект с использованием библиотеки, или могу (для cmake 3.13 и новее) указать на него переменную окружения <mylib>_ROOT
.
Но есть решение для этого, которое мне кажется намного проще: я могу зарегистрировать пакет в реестре пакетов cmake с помощью команды export(PACKAGE <PackageName>)
. Но если я правильно понимаю документацию , это позволяет только зарегистрировать каталог сборки. Мои каталоги сборки обычно не содержат ни файла конфигурации, ни других вещей, таких как файлы включения, которые могут понадобиться. Конечно, я мог бы скопировать их туда, но зачем мне это делать, если у меня уже все хорошо настроено в каталоге установки.
Поэтому мои вопросы:
- По какой причине
export(PACKAGE ...)
поддерживается только регистрация каталога сборки?
- Есть ли способ зарегистрировать мой каталог установки в реестре пакетов cmake?