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])
Выполняет заданную последовательность одного или нескольких команд, при этом стандартный вывод каждого процесса перенаправляется в стандартный ввод следующего. Единая труба стандартной ошибки используется для всех процессов.
Параметры:
-
COMMAND -
Строка команд дочернего процесса.
CMake выполняет дочерний процесс, используя непосредственно API операционной системы. Все аргументы передаются ДОСТОВЕРНО дочернему процессу. Внешняя оболочка не используется, поэтому операторы оболочки, такие как
>рассматриваются как обычные аргументы. (Используйте параметрыINPUT_*,OUTPUT_*, иERROR_*для перенаправления stdin, stdout и stderr.) -
WORKING_DIRECTORY - Указанная директория будет установлена как текущая рабочая директория дочерних процессов.
-
TIMEOUT - Дочерние процессы будут завершены, если они не завершатся в течение заданного количества секунд (допускаются дроби).
-
RESULT_VARIABLE - Переменная будет содержать результат выполнения процессов. Это будет целочисленный код возврата последнего дочернего процесса или строка, описывающая ошибку.
-
OUTPUT_VARIABLE, ERROR_VARIABLE - Переменная с указанным именем будет установлена с содержимым труб стандартного вывода и стандартной ошибки соответственно. Если одно и то же имя переменной используется для обеих труб, их вывод будет объединён в порядке производства.
-
INPUT_FILE, OUTPUT_FILE, ERROR_FILE - Указанный файл будет подключён к стандартному вводу первого процесса, стандартному выводу последнего процесса или стандартной ошибке всех процессов соответственно. Если один и тот же файл указан для вывода и ошибки, он будет использоваться для обоих.
-
OUTPUT_QUIET, ERROR_QUIET - Результаты стандартного вывода или стандартной ошибки будут проигнорированы.
Если для одной и той же трубы задано более одного параметра 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.7/command/execute_process.html