Как получить имя пакета для использования в CMake? - PullRequest
0 голосов
/ 01 июля 2019

У меня есть пара пакетов, которые мне нужны как зависимости для сборки моего кода на CMake. Я получил их через apt-get, и они работают.

Конкретные пакеты:

  • MinGW-w64
  • MinGW-w64-i686-DEV

Я понимаю, что некоторые люди могут захотеть построить эти зависимости из исходного кода, и я боюсь, что имя пакета apt-get может не совпадать с именем установленного пакета с исходным кодом. Мне просто интересно, какое имя пакета я помещаю в мой файл CMakeLists.txt в директиве find_package (XXX REQUIRED) для одного или обоих этих сценариев?

1 Ответ

1 голос
/ 01 июля 2019

find_package(<package>) имеет два режима: Module и Config.

В режиме Config (который будет использоваться первым) ищет файл с именем <package>-config.cmake / <package>Config.cmake в CMAKE_PREFIX_PATH .

В режиме Module CMake ищет файл, вызываемый Find<package>.cmake.

Итак, если ваш пакет называется mingw-w64, то должен быть один из файлов, упомянутых выше, например, mingw-w64Config.cmake.

Пакет специальной архитектуры mingw-w64-i686-dev предоставляется для 32bit машин. Вы установите этот пакет на 32-битной машине, и этот пакет будет по-прежнему называться mingw-w64.

PS: имейте в виду, что не все пакеты предоставляют файлы cmake. Если это так, вы должны написать свой собственный файл Findmingw-w64.cmake. Взгляните здесь для вдохновения.

...