Spec-Zone.ru › CMake 3.25

GetPrerequisites

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

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

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

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

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

Изменено в версии 3.16: Будет использован инструмент, указанный в CMAKE_OBJDUMP, если он задан.

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

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
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, места расположения фреймворков, /usr/lib...

Добавлена в версии 3.14: Переменная GET_PREREQUISITES_VERBOSE может быть установлена в true для включения подробного вывода.

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

Вывести сообщение с перечнем зависимостей <target>.

<target> - имя общей библиотеки или исполняемого файла цели или полный путь к файлу общей библиотеки или исполняемого файла. Если <recurse> установлено в 1, все зависимости будут найдены рекурсивно, если установлено в 0, выводятся только прямые зависимости. <exclude_system> должно быть 0 или 1, указывающее, следует ли включать или исключать «системные» зависимости. При <verbose> = 0 выводятся только полные пути к зависимостям, при <verbose> = 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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/module/GetPrerequisites.html

Spec-Zone.ru

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