Spec-Zone.ru › CMake 3.11

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

Spec-Zone.ru

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