Spec-Zone.ru › CMake 3.9

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_* для перенаправления stdin, stdout и stderr.)

Если требуется последовательное выполнение нескольких команд, используйте несколько вызовов 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 (изготовителя оборудования).
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.9/command/execute_process.html

Spec-Zone.ru

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