Скажите CMake использовать пользовательский Find * .cmake вместо общесистемного - PullRequest
1 голос
/ 20 июня 2020

Я хочу использовать библиотеку KWayland, которую я скомпилировал из исходного кода и установил в папку. Я хочу, чтобы это использовалось в другом моем проекте. Но вместо этого он использует тот, который установлен для всей системы в качестве зависимости от KDE диспетчером пакетов.

Я попытался установить CMAKE_PREFIX_PATH на /path/to/my/cmakefiles;/usr в QtCreator и перенастроил проект, но он по-прежнему использует тот в /usr.

1 Ответ

1 голос
/ 20 июня 2020

Параметр CMAKE_PREFIX_PATH для примера пакета ABC будет искать файл конфигурации пакета , который будет иметь одну из следующих форм для пакета ABC:

  • abc-config.cmake
  • ABCConfig.cmake

Установив CMAKE_PREFIX_PATH, он не сообщает CMake искать модуль поиска в другом месте (например: FindABC.cmake).

Если вы установили свой пакет ABC (в вашем случае KWayland), установленный пакет должен содержать файл конфигурации пакета, который вы можете использовать. Поэтому вместо этого укажите переменную CMAKE_PREFIX_PATH в этот файл:

CMAKE_PREFIX_PATH: /path/to/KWayland/package/config/files

Если no файл конфигурации пакета был предоставлен, вы могли бы вместо этого использовать модуль поиска (FindABC.cmake) для импорта пакета в свой проект. Чтобы CMake искал модули поиска в нестандартном месте, вам нужно вместо этого обновить переменную CMAKE_MODULE_PATH:

CMAKE_MODULE_PATH: /path/to/my/cmakefiles
...