Spec-Zone.ru › CMake

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 выводятся только полные пути к предпосылкам, при установке в 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/latest/module/GetPrerequisites.html

Spec-Zone.ru

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