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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/module/GetPrerequisites.html