GetPrerequisites
Устаревшее начиная с версии 3.16: Используйте file(GET_RUNTIME_DEPENDENCIES) вместо этого.
Функции для анализа и вывода файлов исполняемых файлов.
Этот модуль предоставляет функции для вывода списка файлов .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…
Переменная 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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/module/GetPrerequisites.html