Back to Cmake

exec_program

Help/command/exec_program.rst

4.3.21.7 KB
Original Source

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 )