| exec_program |
| ------------ |
| |
| .. versionchanged:: 3.28 |
| This command is available only if policy :policy:`CMP0153` is not set to ``NEW``. |
| Port projects to the :command:`execute_process` command. |
| |
| .. deprecated:: 3.0 |
| |
| Use the :command:`execute_process` command instead. |
| |
| Runs an executable program during the processing of a CMake file or script: |
| |
| .. code-block:: cmake |
| |
| exec_program( |
| <executable> |
| [<working-dir>] |
| [ARGS <arguments-to-executable>...] |
| [OUTPUT_VARIABLE <var>] |
| [RETURN_VALUE <var>] |
| ) |
| |
| The ``<executable>`` is run in the optionally specified directory |
| ``<working-dir>``. The |
| executable can include arguments if it is double quoted, but it is |
| better to use the optional ``ARGS`` argument to specify arguments to the |
| executable program. This is because CMake will then be able to escape spaces in |
| the executable path. An optional argument ``OUTPUT_VARIABLE`` specifies a |
| variable in which to store the output. To capture the return value of |
| the execution, provide a ``RETURN_VALUE``. If ``OUTPUT_VARIABLE`` is |
| specified, then no output will go to the stdout/stderr of the console |
| running CMake. |
| |
| Examples |
| ^^^^^^^^ |
| |
| Example of the legacy ``exec_program()`` command used in earlier versions of |
| CMake: |
| |
| .. code-block:: cmake |
| |
| exec_program( |
| some_command |
| ${dir} |
| ARGS arg_1 arg_2 args "\"<quoted-arg>\"" |
| OUTPUT_VARIABLE output |
| RETURN_VALUE result |
| ) |
| |
| A direct equivalent replacement of the previous example using the |
| :command:`execute_process` command in new code: |
| |
| .. code-block:: cmake |
| |
| execute_process( |
| COMMAND some_command arg_1 arg_2 args "<quoted-arg>" |
| WORKING_DIRECTORY ${dir} |
| RESULT_VARIABLE result |
| OUTPUT_VARIABLE output |
| ERROR_VARIABLE output |
| OUTPUT_STRIP_TRAILING_WHITESPACE |
| ) |