Spec-Zone.ru › CMake 3.12

execute_process

Выполнить один или несколько дочерних процессов.

execute_process(COMMAND <cmd1> [args1...]]
                [COMMAND <cmd2> [args2...] [...]]
                [WORKING_DIRECTORY <directory>]
                [TIMEOUT <seconds>]
                [RESULT_VARIABLE <variable>]
                [RESULTS_VARIABLE <variable>]
                [OUTPUT_VARIABLE <variable>]
                [ERROR_VARIABLE <variable>]
                [INPUT_FILE <file>]
                [OUTPUT_FILE <file>]
                [ERROR_FILE <file>]
                [OUTPUT_QUIET]
                [ERROR_QUIET]
                [OUTPUT_STRIP_TRAILING_WHITESPACE]
                [ERROR_STRIP_TRAILING_WHITESPACE]
                [ENCODING <name>])

Запускает заданную последовательность из одной или нескольких команд параллельно со стандартным выводом каждого процесса, передаваемым на стандартный ввод следующего. Для всех процессов используется один стандартный канал ошибок.

Параметры:

COMMAND

Командная строка дочернего процесса.

CMake выполняет дочерний процесс, используя API операционной системы напрямую. Все аргументы передаются дочернему процессу ДОСЛОВНО. Промежуточный shell не используется, поэтому операторы shell, такие как >, обрабатываются как обычные аргументы. (Используйте параметры INPUT_*, OUTPUT_* и ERROR_* для перенаправления stdin, stdout и stderr.)

Если требуется последовательное выполнение нескольких команд, используйте несколько вызовов execute_process() с одним аргументом COMMAND.

WORKING_DIRECTORY
Указанный каталог будет установлен в качестве текущего рабочего каталога дочерних процессов.
TIMEOUT
Дочерние процессы будут завершены, если они не завершатся за указанное количество секунд (допускаются дробные значения).
RESULT_VARIABLE
Переменная будет установлена, чтобы содержать результат последнего дочернего процесса. Это будет целочисленный код возврата из последнего дочернего процесса или строка, описывающая ошибочное состояние.
RESULTS_VARIABLE <variable>
Переменная будет установлена, чтобы содержать результат всех процессов в виде ;-списка, в порядке заданных аргументов COMMAND. Каждая запись будет целочисленным кодом возврата из соответствующего дочернего процесса или строкой, описывающей ошибочное состояние.
OUTPUT_VARIABLE, ERROR_VARIABLE
Переменная с указанным именем будет установлена с содержимым стандартных каналов вывода и ошибок соответственно. Если для обоих каналов указана одна и та же переменная, их вывод будет объединен в порядке генерации.
INPUT_FILE, OUTPUT_FILE, ERROR_FILE
Указанный файл будет прикреплен к стандартному вводу первого процесса, стандартному выводу последнего процесса или стандартной ошибке всех процессов соответственно. Если один и тот же файл указан для вывода и ошибки, он будет использоваться для обоих.
OUTPUT_QUIET, ERROR_QUIET
Результаты стандартного вывода или стандартной ошибки будут тихо игнорироваться.
ENCODING <name>

В Windows кодировка, используемая для декодирования вывода из процесса. Игнорируется на других платформах. Допустимые имена кодировок:

NONE
Не выполнять декодирование. Предполагается, что вывод процесса закодирован так же, как и внутренняя кодировка CMake (UTF-8). Это значение по умолчанию.
AUTO
Использовать кодовую страницу текущей активной консоли или, если она недоступна, ANSI.
ANSI
Использовать кодовую страницу ANSI.
OEM
Использовать кодовую страницу OEM (Original Equipment Manufacturer).
UTF8 or UTF-8
Использовать кодовую страницу UTF-8. До CMake 3.11.0 для этой кодировки принималось только UTF8. В CMake 3.11.0 для согласованности с соглашением об именовании UTF-8 RFC было добавлено UTF-8.

Если для одного и того же канала указано более одного параметра OUTPUT_* или ERROR_*, приоритет не определен. Если параметры OUTPUT_* или ERROR_* не указаны, вывод будет совместно использоваться с соответствующими каналами самого процесса CMake.

Команда execute_process() — это более новая и мощная версия exec_program(), но старая команда сохранена для обеспечения совместимости. Обе команды выполняются, пока CMake обрабатывает проект до генерации системы сборки. Используйте add_custom_target() и add_custom_command() для создания пользовательских команд, которые выполняются во время сборки.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.12/command/execute_process.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API