Spec-Zone.ru › CMake 3.8

execute_process

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

execute_process(COMMAND <cmd1> [args1...]]
                [COMMAND <cmd2> [args2...] [...]]
                [WORKING_DIRECTORY <directory>]
                [TIMEOUT <seconds>]
                [RESULT_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_* для перенаправления стандартного ввода, стандартного вывода и стандартного потока ошибок.)

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

WORKING_DIRECTORY
Указанная директория будет установлена как текущая рабочая директория дочерних процессов.
TIMEOUT
Дочерние процессы будут завершены, если они не завершатся в течение указанного количества секунд (допускаются дробные значения).
RESULT_VARIABLE
Переменная будет содержать результат выполнения процессов. Это будет целочисленное возвращаемое значение последнего дочернего процесса или строка, описывающая ошибку.
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
Использовать кодовую страницу 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.8/command/execute_process.html

Spec-Zone.ru

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