Мой вопрос: как можно избежать того, чтобы другие пакеты, импортирующие Pkg
в свой проект, не указывали, где Foo
и, что более важно, где Bar
можно найти?
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Я не знаю, где * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * он не может быть найден ”. 1014 * и Bar_ROOT
и поместить его в мой PkgConfig.cmake
файл?
Обратите внимание, что файлы XXXConfig.cmake
, как правило, подготовлены для установленного проекта, который будет перемещен в другой каталог на сборочной машине или, что более важно, для копирования на другую машину и использования там.
, поскольку расположение из Foo
и Bar
на другой машине может отличаться от единицы на сборочной машине , зная, что их расположение на сборочной машине не может помочь чтобы найти их на целевой машине.
Тем не менее, это зависит от вас (как проект разработчик), чтобы указать ограничения использования проекта. Вы можете, например, указать, что проект может использоваться только на той машине, где он был построен. В этом случае повторное использование местоположений сборки Foo
и Bar
в сценарии PkgConfig.cmake
оправдано.
Более того, даже когда вы разрешаете копировать установленный проект на другой компьютер, вы все равно можете использовать местоположения сборки: Foo
и Bar
в качестве подсказки для поиска их в PkgConfig.cmake
. Таким образом, если проект будет использоваться на той же машине , где он был построен, то зависимости будут найдены без вмешательства пользователя. То же самое верно, если проект будет скопирован на другую машину , которая имеет Foo
и Bar
в тех же местах, что и на сборочной машине .