| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 | 
							- execute_process
 
- ---------------
 
- Execute one or more child processes.
 
- .. code-block:: cmake
 
-   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]
 
-                   [COMMAND_ECHO <where>]
 
-                   [OUTPUT_STRIP_TRAILING_WHITESPACE]
 
-                   [ERROR_STRIP_TRAILING_WHITESPACE]
 
-                   [ENCODING <name>]
 
-                   [ECHO_OUTPUT_VARIABLE]
 
-                   [ECHO_ERROR_VARIABLE]
 
-                   [COMMAND_ERROR_IS_FATAL <ANY|LAST>])
 
- Runs the given sequence of one or more commands.
 
- Commands are executed concurrently as a pipeline, with the standard
 
- output of each process piped to the standard input of the next.
 
- A single standard error pipe is used for all processes.
 
- ``execute_process`` runs commands while CMake is configuring the project,
 
- prior to build system generation.  Use the :command:`add_custom_target` and
 
- :command:`add_custom_command` commands to create custom commands that run
 
- at build time.
 
- Options:
 
- ``COMMAND``
 
-  A child process command line.
 
-  CMake executes the child process using operating system APIs directly:
 
-  * On POSIX platforms, the command line is passed to the
 
-    child process in an ``argv[]`` style array.
 
-  * On Windows platforms, the command line is encoded as a string such
 
-    that child processes using ``CommandLineToArgvW`` will decode the
 
-    original arguments.
 
-  No intermediate shell is used, so shell operators such as ``>``
 
-  are treated as normal arguments.
 
-  (Use the ``INPUT_*``, ``OUTPUT_*``, and ``ERROR_*`` options to
 
-  redirect stdin, stdout, and stderr.)
 
-  For **sequential execution** of multiple commands use multiple
 
-  ``execute_process`` calls each with a single ``COMMAND`` argument.
 
- ``WORKING_DIRECTORY``
 
-  The named directory will be set as the current working directory of
 
-  the child processes.
 
- ``TIMEOUT``
 
-  After the specified number of seconds (fractions allowed), all unfinished
 
-  child processes will be terminated, and the ``RESULT_VARIABLE`` will be
 
-  set to a string mentioning the "timeout".
 
- ``RESULT_VARIABLE``
 
-  The variable will be set to contain the result of last child process.
 
-  This will be an integer return code from the last child or a string
 
-  describing an error condition.
 
- ``RESULTS_VARIABLE <variable>``
 
-  .. versionadded:: 3.10
 
-  The variable will be set to contain the result of all processes as a
 
-  :ref:`semicolon-separated list <CMake Language Lists>`, in order of the
 
-  given ``COMMAND`` arguments.  Each entry will be an integer return code
 
-  from the corresponding child or a string describing an error condition.
 
- ``INPUT_FILE <file>``
 
-  ``<file>`` is attached to the standard input pipe of the *first* ``COMMAND``
 
-  process.
 
- ``OUTPUT_FILE <file>``
 
-  ``<file>`` is attached to the standard output pipe of the *last* ``COMMAND``
 
-  process.
 
- ``ERROR_FILE <file>``
 
-  ``<file>`` is attached to the standard error pipe of *all* ``COMMAND``
 
-  processes.
 
- .. versionadded:: 3.3
 
-   If the same ``<file>`` is named for both ``OUTPUT_FILE`` and ``ERROR_FILE``
 
-   then it will be used for both standard output and standard error pipes.
 
- ``OUTPUT_QUIET``, ``ERROR_QUIET``
 
-  The standard output on ``OUTPUT_VARIABLE`` or standard error on
 
-  ``ERROR_VARIABLE`` are not connected (no variable content).
 
-  The  ``*_FILE`` and ``ECHO_*_VARIABLE`` options are not affected.
 
- ``OUTPUT_VARIABLE``, ``ERROR_VARIABLE``
 
-  The variable named will be set with the contents of the standard output
 
-  and standard error pipes, respectively.  If the same variable is named
 
-  for both pipes their output will be merged in the order produced.
 
- ``ECHO_OUTPUT_VARIABLE``, ``ECHO_ERROR_VARIABLE``
 
-   .. versionadded:: 3.18
 
-   The standard output or standard error will not be exclusively redirected to
 
-   the specified variables.
 
-   The output will be duplicated into the specified variables and also onto
 
-   standard output or standard error analogous to the ``tee`` Unix command.
 
- .. note::
 
-   If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the
 
-   same pipe the precedence is *not specified*.
 
-   If no ``OUTPUT_*`` or ``ERROR_*`` options are given the output will
 
-   be shared with the corresponding pipes of the CMake process itself.
 
- ``COMMAND_ECHO <where>``
 
-  .. versionadded:: 3.15
 
-  The command being run will be echo'ed to ``<where>`` with ``<where>``
 
-  being set to one of ``STDERR``, ``STDOUT`` or ``NONE``.
 
-  See the :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable for a way
 
-  to control the default behavior when this option is not present.
 
- ``ENCODING <name>``
 
-  .. versionadded:: 3.8
 
-  On Windows, the encoding that is used to decode output from the process.
 
-  Ignored on other platforms.
 
-  Valid encoding names are:
 
-  ``NONE``
 
-    Perform no decoding.  This assumes that the process output is encoded
 
-    in the same way as CMake's internal encoding (UTF-8).
 
-    This is the default.
 
-  ``AUTO``
 
-    Use the current active console's codepage or if that isn't
 
-    available then use ANSI.
 
-  ``ANSI``
 
-    Use the ANSI codepage.
 
-  ``OEM``
 
-    Use the original equipment manufacturer (OEM) code page.
 
-  ``UTF8`` or ``UTF-8``
 
-    Use the UTF-8 codepage.
 
-    .. versionadded:: 3.11
 
-      Accept ``UTF-8`` spelling for consistency with the
 
-      `UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_ naming convention.
 
- ``COMMAND_ERROR_IS_FATAL <ANY|LAST>``
 
-   .. versionadded:: 3.19
 
-   The option following ``COMMAND_ERROR_IS_FATAL`` determines the behavior when
 
-   an error is encountered:
 
-     ``ANY``
 
-     If any of the commands in the list of commands fail, the
 
-     ``execute_process()`` command halts with an error.
 
-     ``LAST``
 
-     If the last command in the list of commands fails, the
 
-     ``execute_process()`` command halts with an error.  Commands earlier in the
 
-     list will not cause a fatal error.
 
 
  |