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, расположения фреймворков, /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.16/module/GetPrerequisites.html