Spec-Zone.ru › CMake 3.17

GetPrerequisites

Устарело начиная с версии 3.16: Используйте file(GET_RUNTIME_DEPENDENCIES) вместо этого.

Функции для анализа и перечисления необходимых файлов исполняемых файлов.

Этот модуль предоставляет функции для перечисления файлов .dll, .dylib или .so, от которых зависит исполняемый или динамически подключаемый файл. (Его зависимости.)

Он использует различные инструменты для получения списка необходимых файлов динамических библиотек:

dumpbin (Windows)
objdump (MinGW on Windows)
ldd (Linux/Unix)
otool (Mac OSX)

Этот модуль предоставляет следующие функции:

get_prerequisites
list_prerequisites
list_prerequisites_by_glob
gp_append_unique
is_file_executable
gp_item_default_embedded_path
  (projects can override with gp_item_default_embedded_path_override)
gp_resolve_item
  (projects can override with gp_resolve_item_override)
gp_resolved_file_type
  (projects can override with gp_resolved_file_type_override)
gp_file_type

Требуется CMake 2.6 или выше, поскольку он использует функции, операторы break, return и PARENT_SCOPE.

GET_PREREQUISITES(<target> <prerequisites_var> <exclude_system> <recurse>
                  <exepath> <dirs> [<rpaths>])

Получить список файлов динамических библиотек, необходимых для <target>. Список в переменной с именем <prerequisites_var> должен быть пустым при первом вызове этой функции. По завершении функция заполнит <prerequisites_var> списком необходимых файлов динамических библиотек.

<target> — это полный путь к исполняемому файлу. <prerequisites_var> — имя переменной CMake для хранения результатов. <exclude_system> должно быть 0 или 1, указывая, следует ли включать или исключать зависимости «системы». Если <recurse> установлено в 1, будут найдены все зависимости рекурсивно, если установлено в 0, будут перечислены только непосредственные зависимости. <exepath> — путь к исполняемому файлу верхнего уровня, используемому для замены @executable_path на Mac. <dirs> — список путей, где могут находиться библиотеки: эти пути проверяются в первую очередь, когда задан целевой файл без информации о пути. Затем проверяются стандартные системные расположения: PATH, расположения Framework, /usr/lib…

Переменная GET_PREREQUISITES_VERBOSE может быть установлена в true для включения подробной информации.

LIST_PREREQUISITES(<target> [<recurse> [<exclude_system> [<verbose>]]])

Вывести сообщение, содержащее список зависимостей для <target>.

<target> — имя динамической библиотеки или исполняемого файла, или полный путь к файлу динамической библиотеки или исполняемому файлу. Если <recurse> установлено в 1, будут найдены все зависимости рекурсивно, если установлено в 0, будут перечислены только непосредственные зависимости. <exclude_system> должно быть 0 или 1, указывая, следует ли включать или исключать зависимости «системы». При установке <verbose> в 0 выводятся только полные пути зависимостей, при установке в 1 отображается дополнительная информация.

LIST_PREREQUISITES_BY_GLOB(<glob_arg> <glob_exp>)

Вывести зависимости файлов динамических библиотек и исполняемых файлов, соответствующих шаблону подстановки. <glob_arg> — это GLOB или GLOB_RECURSE, а <glob_exp> — это выражение подстановки, используемое с «file(GLOB» или «file(GLOB_RECURSE» для получения списка соответствующих файлов. Если соответствующий файл — исполняемый, выводятся его зависимости.

Любые дополнительные (необязательные) аргументы передаются как необязательные аргументы в вызовы list_prerequisites.

GP_APPEND_UNIQUE(<list_var> <value>)

Добавить <value> в список переменных <list_var>, только если значение еще не содержится в списке.

IS_FILE_EXECUTABLE(<file> <result_var>)

Возвращает 1 в <result_var>, если <file> — исполняемый файл, и 0 в противном случае.

GP_ITEM_DEFAULT_EMBEDDED_PATH(<item> <default_embedded_path_var>)

Возвращает путь, по которому другие должны ссылаться на элемент, когда элемент вставлен в пакет.

Переопределение на уровне проекта путем предоставления функции gp_item_default_embedded_path_override, специфичной для проекта.

GP_RESOLVE_ITEM(<context> <item> <exepath> <dirs> <resolved_item_var>
                [<rpaths>])

Разрешение элемента в существующий полный путь к файлу.

Переопределение на уровне проекта путем предоставления функции gp_resolve_item_override, специфичной для проекта.

GP_RESOLVED_FILE_TYPE(<original_file> <file> <exepath> <dirs> <type_var>
                      [<rpaths>])

Возвращает тип <file> относительно <original_file>. Строка, описывающая тип зависимости, возвращается в переменную с именем <type_var>.

Используйте <exepath> и <dirs>, если необходимо, для разрешения не абсолютных значений <file> — но только для не вложенных элементов.

Возможные типы:

system
local
embedded
other

Переопределение на уровне проекта путем предоставления функции gp_resolved_file_type_override, специфичной для проекта.

GP_FILE_TYPE(<original_file> <file> <type_var>)

Возвращает тип <file> относительно <original_file>. Строка, описывающая тип зависимости, возвращается в переменную с именем <type_var>.

Возможные типы:

system
local
embedded
other

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.17/module/GetPrerequisites.html

Spec-Zone.ru

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