| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | 
							- try_run
 
- -------
 
- .. only:: html
 
-    .. contents::
 
- Try compiling and then running some code.
 
- Try Compiling and Running Source Files
 
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
- ::
 
-   try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR
 
-           bindir srcfile [CMAKE_FLAGS <flags>...]
 
-           [COMPILE_DEFINITIONS <defs>...]
 
-           [LINK_LIBRARIES <libs>...]
 
-           [COMPILE_OUTPUT_VARIABLE <var>]
 
-           [RUN_OUTPUT_VARIABLE <var>]
 
-           [OUTPUT_VARIABLE <var>]
 
-           [ARGS <args>...])
 
- Try compiling a ``<srcfile>``.  Returns ``TRUE`` or ``FALSE`` for success
 
- or failure in ``COMPILE_RESULT_VAR``.  If the compile succeeded, runs the
 
- executable and returns its exit code in ``RUN_RESULT_VAR``.  If the
 
- executable was built, but failed to run, then ``RUN_RESULT_VAR`` will be
 
- set to ``FAILED_TO_RUN``.  See the :command:`try_compile` command for
 
- information on how the test project is constructed to build the source file.
 
- The options are:
 
- ``CMAKE_FLAGS <flags>...``
 
-   Specify flags of the form ``-DVAR:TYPE=VALUE`` to be passed to
 
-   the ``cmake`` command-line used to drive the test build.
 
-   The example in :command:`try_compile` shows how values for variables
 
-   ``INCLUDE_DIRECTORIES``, ``LINK_DIRECTORIES``, and ``LINK_LIBRARIES``
 
-   are used.
 
- ``COMPILE_DEFINITIONS <defs>...``
 
-   Specify ``-Ddefinition`` arguments to pass to ``add_definitions``
 
-   in the generated test project.
 
- ``COMPILE_OUTPUT_VARIABLE <var>``
 
-   Report the compile step build output in a given variable.
 
- ``LINK_LIBRARIES <libs>...``
 
-   Specify libraries to be linked in the generated project.
 
-   The list of libraries may refer to system libraries and to
 
-   :ref:`Imported Targets <Imported Targets>` from the calling project.
 
-   If this option is specified, any ``-DLINK_LIBRARIES=...`` value
 
-   given to the ``CMAKE_FLAGS`` option will be ignored.
 
- ``OUTPUT_VARIABLE <var>``
 
-   Report the compile build output and the output from running the executable
 
-   in the given variable.  This option exists for legacy reasons.  Prefer
 
-   ``COMPILE_OUTPUT_VARIABLE`` and ``RUN_OUTPUT_VARIABLE`` instead.
 
- ``RUN_OUTPUT_VARIABLE <var>``
 
-   Report the output from running the executable in a given variable.
 
- Other Behavior Settings
 
- ^^^^^^^^^^^^^^^^^^^^^^^
 
- Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose
 
- a build configuration.
 
- Behavior when Cross Compiling
 
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
- When cross compiling, the executable compiled in the first step
 
- usually cannot be run on the build host.  The ``try_run`` command checks
 
- the :variable:`CMAKE_CROSSCOMPILING` variable to detect whether CMake is in
 
- cross-compiling mode.  If that is the case, it will still try to compile
 
- the executable, but it will not try to run the executable unless the
 
- :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable is set.  Instead it
 
- will create cache variables which must be filled by the user or by
 
- presetting them in some CMake script file to the values the executable
 
- would have produced if it had been run on its actual target platform.
 
- These cache entries are:
 
- ``<RUN_RESULT_VAR>``
 
-   Exit code if the executable were to be run on the target platform.
 
- ``<RUN_RESULT_VAR>__TRYRUN_OUTPUT``
 
-   Output from stdout and stderr if the executable were to be run on
 
-   the target platform.  This is created only if the
 
-   ``RUN_OUTPUT_VARIABLE`` or ``OUTPUT_VARIABLE`` option was used.
 
- In order to make cross compiling your project easier, use ``try_run``
 
- only if really required.  If you use ``try_run``, use the
 
- ``RUN_OUTPUT_VARIABLE`` or ``OUTPUT_VARIABLE`` options only if really
 
- required.  Using them will require that when cross-compiling, the cache
 
- variables will have to be set manually to the output of the executable.
 
- You can also "guard" the calls to ``try_run`` with an :command:`if`
 
- block checking the :variable:`CMAKE_CROSSCOMPILING` variable and
 
- provide an easy-to-preset alternative for this case.
 
 
  |