Spec-Zone.ru › CMake 3.13

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 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.13/command/execute_process.html

Spec-Zone.ru

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