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