| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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
- )
|