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