Spec-Zone.ru › CMake 3.28

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, расположения Frameworks, /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, будут выведены только полные пути к предварительным требованиям, при установке в 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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/module/GetPrerequisites.html

Spec-Zone.ru

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