Spec-Zone.ru › CMake 3.15

GetPrerequisites

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

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

Переменная 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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.15/module/GetPrerequisites.html

Spec-Zone.ru

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