Как зарегистрировать каталог установки в реестре пакетов cmake - PullRequest
2 голосов
/ 13 апреля 2019

Предположим, я написал библиотеку <mylib>, что я могу собрать установку через cmake. И у меня также есть файл <mylib>Config.cmake, который может найти все необходимые файлы (библиотека, заголовки, ...) и экспортировать цель для библиотеки.

Если я хочу использовать библиотеку с find_package(...), cmake должен знать местоположение файла конфигурации. Я знаю, что могу передавать это каждый раз, когда собираю проект с использованием библиотеки, или могу (для cmake 3.13 и новее) указать на него переменную окружения <mylib>_ROOT.

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

Поэтому мои вопросы:

  • По какой причине export(PACKAGE ...) поддерживается только регистрация каталога сборки?
  • Есть ли способ зарегистрировать мой каталог установки в реестре пакетов cmake?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...