Spec-Zone.ru › CMake 3.5

find_program

Краткая подпись:

find_program (<VAR> name1 [path1 path2 ...])

Общая подпись:

find_program (
          <VAR>
          name | NAMES name1 [name2 ...] [NAMES_PER_DIR]
          [HINTS path1 [path2 ... ENV var]]
          [PATHS path1 [path2 ... ENV var]]
          [PATH_SUFFIXES suffix1 [suffix2 ...]]
          [DOC "cache documentation string"]
          [NO_DEFAULT_PATH]
          [NO_CMAKE_ENVIRONMENT_PATH]
          [NO_CMAKE_PATH]
          [NO_SYSTEM_ENVIRONMENT_PATH]
          [NO_CMAKE_SYSTEM_PATH]
          [CMAKE_FIND_ROOT_PATH_BOTH |
           ONLY_CMAKE_FIND_ROOT_PATH |
           NO_CMAKE_FIND_ROOT_PATH]
         )

Эта команда используется для поиска программы. В кэше создаётся запись, именуемая <VAR>, для хранения результата этой команды. Если программа найдена, результат сохраняется в переменной, и поиск не повторяется, пока переменная не будет очищена. Если ничего не найдено, результат будет <VAR>-NOTFOUND, и поиск будет повторён в следующий раз, когда find_program вызывается с той же переменной.

Доступные параметры:

NAMES

Укажите одно или несколько возможных имён программы.

При использовании для указания имён с и без суффикса версии рекомендуется сначала указать имя без версии, чтобы находить локально скомпилированные пакеты перед пакетами, предоставляемыми дистрибутивами.

HINTS, PATHS
Укажите каталоги для поиска помимо стандартных расположений. Параметр ENV var читает пути из системной переменной среды.
PATH_SUFFIXES
Укажите дополнительные подкаталоги для проверки в каждом каталоге, в противном случае рассматриваемом.
DOC
Укажите строку документации для записи кэша <VAR>.

Если NO_DEFAULT_PATH указано, то дополнительные пути к поиску не добавляются. Если NO_DEFAULT_PATH не указано, процесс поиска выполняется следующим образом:

  1. Поиск путей, указанных в переменных кэша CMake. Они предназначены для использования в командной строке с -DVAR=value. Это можно пропустить, если передать NO_CMAKE_PATH.
    • <prefix>/[s]bin для каждого <prefix> в CMAKE_PREFIX_PATH
    • CMAKE_PROGRAM_PATH
    • CMAKE_APPBUNDLE_PATH
  2. Поиск путей, указанных в переменных среды CMake. Они предназначены для настройки оболочки пользователя. Это можно пропустить, если передать NO_CMAKE_ENVIRONMENT_PATH.
    • <prefix>/[s]bin для каждого <prefix> в CMAKE_PREFIX_PATH
    • CMAKE_PROGRAM_PATH
    • CMAKE_APPBUNDLE_PATH
  3. Поиск путей, указанных параметром HINTS. Эти пути должны быть вычислены путём анализа системы, такие как подсказка, предоставленная местоположением другого уже найденного элемента. Зашифрованные догадки должны быть указаны с помощью параметра PATHS.
  4. Поиск в стандартных переменных среды. Это можно пропустить, если NO_SYSTEM_ENVIRONMENT_PATH является аргументом.
    • PATH
  5. Поиск переменных CMake, определённых в файлах платформы для текущей системы. Это можно пропустить, если передать NO_CMAKE_SYSTEM_PATH.
    • <prefix>/[s]bin для каждого <prefix> в CMAKE_SYSTEM_PREFIX_PATH
    • CMAKE_SYSTEM_PROGRAM_PATH
    • CMAKE_SYSTEM_APPBUNDLE_PATH
  6. Поиск путей, указанных параметром PATHS или в краткой версии команды. Обычно это зашифрованные догадки.

В OS X переменные CMAKE_FIND_FRAMEWORK и CMAKE_FIND_APPBUNDLE определяют порядок предпочтения между компонентами пакета в стиле Apple и в стиле Unix.

Переменная CMake CMAKE_FIND_ROOT_PATH указывает один или несколько каталогов, которые должны быть добавлены перед другими каталогами поиска. Это эффективно «переустанавливает» весь поиск в указанных местах. Пути, которые являются потомками переменной CMAKE_STAGING_PREFIX, исключаются из этого переустановления, потому что эта переменная всегда является путём на хост-системе. По умолчанию CMAKE_FIND_ROOT_PATH пуста.

Переменная CMAKE_SYSROOT также может быть использована для указания ровно одного каталога, используемого в качестве префикса. Установка CMAKE_SYSROOT также имеет другие эффекты. Смотрите документацию по этой переменной для получения дополнительной информации.

Эти переменные особенно полезны при кросс-компиляции для указания корневого каталога целевой среды, и CMake также будет искать там. По умолчанию сначала просматриваются каталоги, указанные в CMAKE_FIND_ROOT_PATH, затем каталог CMAKE_SYSROOT, а затем — некорневые каталоги. Поведение по умолчанию можно настроить, установив CMAKE_FIND_ROOT_PATH_MODE_PROGRAM. Это поведение можно переопределить вручную на основе вызова с помощью параметров:

CMAKE_FIND_ROOT_PATH_BOTH
Поиск в порядке, описанном выше.
NO_CMAKE_FIND_ROOT_PATH
Не использовать переменную CMAKE_FIND_ROOT_PATH.
ONLY_CMAKE_FIND_ROOT_PATH
Искать только переустановленные каталоги и каталоги ниже CMAKE_STAGING_PREFIX.

Стандартный порядок поиска предназначен для наиболее специфичных к наименее специфичным в распространённых случаях использования. Проекты могут переопределить порядок, просто вызвав команду несколько раз и используя параметры NO_*.

find_program (<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH)
find_program (<VAR> NAMES name)

После успешного выполнения одного из вызовов переменная результата будет установлена и сохранена в кэше, так что последующие вызовы не будут повторно искать.

Когда для параметра NAMES задано более одного значения, эта команда по умолчанию будет рассматривать одно имя за раз и искать его в каждом каталоге. Параметр NAMES_PER_DIR сообщает этой команде рассматривать один каталог за раз и искать в нём все имена.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.5/command/find_program.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API