Spec-Zone.ru › CMake 3.14

execute_process

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

execute_process(COMMAND <cmd1> [<arguments>]
                [COMMAND <cmd2> [<arguments>]]...
                [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 (производителя оборудования).

UTF8 or UTF-8

Использовать кодовую страницу UTF-8. До CMake 3.11.0, только UTF8 принималось для этой кодировки. В CMake 3.11.0 UTF-8 было добавлено для обеспечения соответствия соглашению об именовании RFC для UTF-8 UTF-8 RFC.

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

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

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

Spec-Zone.ru

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