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