Spec-Zone.ru › CMake 3.10

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 операционной системы напрямую. Все аргументы передаются ДОЧЕРНЕМУ процессу ДОСЛОВНО. Временная оболочка не используется, поэтому операторы оболочки, такие как > обрабатываются как обычные аргументы. (Используйте параметры 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 (производителя оборудования).
UTF8
Использовать кодовую страницу 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.10/command/execute_process.html

Spec-Zone.ru

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