Spec-Zone.ru › CMake 3.20

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, расположения Framework, /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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/module/GetPrerequisites.html

Spec-Zone.ru

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