Подсказка Найти .cmake Файлы с пользовательским каталогом

В CMake существует ли способ сделать встроенные скрипты поиска для определения приоритетов настраиваемого каталога, который мы укажем? Потому что особенно в windowsх, скрипты для поиска модhive обычно не могут обнаружить модуль, например, визуальные студии-каталоги. Поэтому мне обычно приходится вручную устанавливать пути для внешних библиотек, которые довольно утомительны. Вместо этого я хочу, чтобы эти сценарии отображались в пользовательском каталоге, скажем, в папке «зависимостей» в основном проекте, чтобы я мог напрямую помещать эти внешние элементы в эту папку, что намного проще, чем помещать их в папку VC или вручную устанавливать пути.

Значение переменной CMAKE_PREFIX_PATH служит именно для этих целей: намекает на функцию find_* о местоположении find_* объекта.

Хотя описание этой переменной не find_package функцию find_package , она косвенно влияет на нее: большинство скриптов Find.cmake используют функции find_library и find_path . Обратите внимание, что все функции find_* имеют точный алгоритм для элементов поиска, а пути, построенные с помощью CMAKE_PREFIX_PATH , проверяются перед системными.

Более того, CMAKE_PREFIX_PATH влияет на некоторые другие процедуры поиска. Например, если пакет 3d party предоставляет сценарий Config.cmake вместо Find.cmake one, этот скрипт также выполняется с использованием этой переменной. pkg_check_modules также использует CMAKE_PREFIX_PATH для поиска .pc файлов, описанных в пакете.

Переменная CMAKE_PREFIX_PATH может быть установлена ​​как среда (в зависимости от платформы и использования), в качестве параметра для вызова cmake :

 cmake -DCMAKE_PREFIX_PATH=  

или в файле CMakeLists.txt . В последнем случае лучше добавить каталоги поиска, поэтому пользователь вашего пакета может также установить переменную для пакетов поиска, не отгруженных с вашим проектом:

 list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/dependencies") 
  • Использование CMake с GNU Make: Как я могу видеть точные команды?
  • Создание библиотеки CMake, доступной для других пакетов CMake автоматически
  • Переключение между GCC и Clang / LLVM с помощью CMake
  • Немедленно создайте инструмент, чтобы его можно было использовать позже в том же запуске CMake
  • CMake: как создавать внешние проекты и включать их цели
  • Кросс-компиляция CMake с конкретным компоновщиком не передает аргументы в armlink
  • Как настроить CMake для создания приложения для iPhone
  • Cmake не находит Boost
  • Лучше ли указывать исходные файлы с GLOB или каждый файл отдельно в CMake?
  • Как установить фильтры Visual Studio для вложенной подкаталога с помощью cmake
  • Каков правильный способ использования `pkg-config` из` cmake`?
  • Давайте будем гением компьютера.