summaryrefslogtreecommitdiffstats
path: root/Help/command/try_compile.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Help/command/try_compile.rst')
-rw-r--r--Help/command/try_compile.rst120
1 files changed, 71 insertions, 49 deletions
diff --git a/Help/command/try_compile.rst b/Help/command/try_compile.rst
index 323077a..57d3ae7 100644
--- a/Help/command/try_compile.rst
+++ b/Help/command/try_compile.rst
@@ -19,6 +19,10 @@ Try Compiling Whole Projects
Try building a project. The success or failure of the ``try_compile``,
i.e. ``TRUE`` or ``FALSE`` respectively, is returned in ``<resultVar>``.
+.. versionadded:: 3.14
+ The name of the ``<resultVar>`` is defined by the user. Previously, it had
+ a fixed name ``RESULT_VAR``.
+
In this form, ``<srcdir>`` should contain a complete CMake project with a
``CMakeLists.txt`` file and all sources. The ``<bindir>`` and ``<srcdir>``
will not be deleted after this command is run. Specify ``<targetName>`` to
@@ -47,6 +51,10 @@ Try building an executable or static library from one or more source files
variable). The success or failure of the ``try_compile``, i.e. ``TRUE`` or
``FALSE`` respectively, is returned in ``<resultVar>``.
+.. versionadded:: 3.14
+ The name of the ``<resultVar>`` is defined by the user. Previously, it had
+ a fixed name ``RESULT_VAR``.
+
In this form, one or more source files must be provided. If
:variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` is unset or is set to ``EXECUTABLE``,
the sources must include a definition for ``main`` and CMake will create a
@@ -94,6 +102,8 @@ The options are:
given to the ``CMAKE_FLAGS`` option will be ignored.
``LINK_OPTIONS <options>...``
+ .. versionadded:: 3.14
+
Specify link step options to pass to :command:`target_link_options` or to
set the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property in the generated
project, depending on the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable.
@@ -102,17 +112,23 @@ The options are:
Store the output from the build process in the given variable.
``<LANG>_STANDARD <std>``
+ .. versionadded:: 3.8
+
Specify the :prop_tgt:`C_STANDARD`, :prop_tgt:`CXX_STANDARD`,
:prop_tgt:`OBJC_STANDARD`, :prop_tgt:`OBJCXX_STANDARD`,
or :prop_tgt:`CUDA_STANDARD` target property of the generated project.
``<LANG>_STANDARD_REQUIRED <bool>``
+ .. versionadded:: 3.8
+
Specify the :prop_tgt:`C_STANDARD_REQUIRED`,
:prop_tgt:`CXX_STANDARD_REQUIRED`, :prop_tgt:`OBJC_STANDARD_REQUIRED`,
:prop_tgt:`OBJCXX_STANDARD_REQUIRED`,or :prop_tgt:`CUDA_STANDARD_REQUIRED`
target property of the generated project.
``<LANG>_EXTENSIONS <bool>``
+ .. versionadded:: 3.8
+
Specify the :prop_tgt:`C_EXTENSIONS`, :prop_tgt:`CXX_EXTENSIONS`,
:prop_tgt:`OBJC_EXTENSIONS`, :prop_tgt:`OBJCXX_EXTENSIONS`,
or :prop_tgt:`CUDA_EXTENSIONS` target property of the generated project.
@@ -131,24 +147,26 @@ the try_compile call of interest, and then re-run cmake again with
Other Behavior Settings
^^^^^^^^^^^^^^^^^^^^^^^
-If set, the following variables are passed in to the generated
-try_compile CMakeLists.txt to initialize compile target properties with
-default values:
+.. versionadded:: 3.4
+ If set, the following variables are passed in to the generated
+ try_compile CMakeLists.txt to initialize compile target properties with
+ default values:
-* :variable:`CMAKE_CUDA_RUNTIME_LIBRARY`
-* :variable:`CMAKE_ENABLE_EXPORTS`
-* :variable:`CMAKE_LINK_SEARCH_START_STATIC`
-* :variable:`CMAKE_LINK_SEARCH_END_STATIC`
-* :variable:`CMAKE_MSVC_RUNTIME_LIBRARY`
-* :variable:`CMAKE_POSITION_INDEPENDENT_CODE`
+ * :variable:`CMAKE_CUDA_RUNTIME_LIBRARY`
+ * :variable:`CMAKE_ENABLE_EXPORTS`
+ * :variable:`CMAKE_LINK_SEARCH_START_STATIC`
+ * :variable:`CMAKE_LINK_SEARCH_END_STATIC`
+ * :variable:`CMAKE_MSVC_RUNTIME_LIBRARY`
+ * :variable:`CMAKE_POSITION_INDEPENDENT_CODE`
-If :policy:`CMP0056` is set to ``NEW``, then
-:variable:`CMAKE_EXE_LINKER_FLAGS` is passed in as well.
+ If :policy:`CMP0056` is set to ``NEW``, then
+ :variable:`CMAKE_EXE_LINKER_FLAGS` is passed in as well.
-If :policy:`CMP0083` is set to ``NEW``, then in order to obtain correct
-behavior at link time, the ``check_pie_supported()`` command from the
-:module:`CheckPIESupported` module must be called before using the
-:command:`try_compile` command.
+.. versionadded:: 3.14
+ If :policy:`CMP0083` is set to ``NEW``, then in order to obtain correct
+ behavior at link time, the ``check_pie_supported()`` command from the
+ :module:`CheckPIESupported` module must be called before using the
+ :command:`try_compile` command.
The current settings of :policy:`CMP0065` and :policy:`CMP0083` are propagated
through to the generated test project.
@@ -156,37 +174,41 @@ through to the generated test project.
Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose
a build configuration.
-Set the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to specify
-the type of target used for the source file signature.
-
-Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify
-variables that must be propagated into the test project. This variable is
-meant for use only in toolchain files and is only honored by the
-``try_compile()`` command for the source files form, not when given a whole
-project.
-
-If :policy:`CMP0067` is set to ``NEW``, or any of the ``<LANG>_STANDARD``,
-``<LANG>_STANDARD_REQUIRED``, or ``<LANG>_EXTENSIONS`` options are used,
-then the language standard variables are honored:
-
-* :variable:`CMAKE_C_STANDARD`
-* :variable:`CMAKE_C_STANDARD_REQUIRED`
-* :variable:`CMAKE_C_EXTENSIONS`
-* :variable:`CMAKE_CXX_STANDARD`
-* :variable:`CMAKE_CXX_STANDARD_REQUIRED`
-* :variable:`CMAKE_CXX_EXTENSIONS`
-* :variable:`CMAKE_OBJC_STANDARD`
-* :variable:`CMAKE_OBJC_STANDARD_REQUIRED`
-* :variable:`CMAKE_OBJC_EXTENSIONS`
-* :variable:`CMAKE_OBJCXX_STANDARD`
-* :variable:`CMAKE_OBJCXX_STANDARD_REQUIRED`
-* :variable:`CMAKE_OBJCXX_EXTENSIONS`
-* :variable:`CMAKE_CUDA_STANDARD`
-* :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
-* :variable:`CMAKE_CUDA_EXTENSIONS`
-
-Their values are used to set the corresponding target properties in
-the generated project (unless overridden by an explicit option).
-
-For the :generator:`Green Hills MULTI` generator the GHS toolset and target
-system customization cache variables are also propagated into the test project.
+.. versionadded:: 3.6
+ Set the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to specify
+ the type of target used for the source file signature.
+
+.. versionadded:: 3.6
+ Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify
+ variables that must be propagated into the test project. This variable is
+ meant for use only in toolchain files and is only honored by the
+ ``try_compile()`` command for the source files form, not when given a whole
+ project.
+
+.. versionadded:: 3.8
+ If :policy:`CMP0067` is set to ``NEW``, or any of the ``<LANG>_STANDARD``,
+ ``<LANG>_STANDARD_REQUIRED``, or ``<LANG>_EXTENSIONS`` options are used,
+ then the language standard variables are honored:
+
+ * :variable:`CMAKE_C_STANDARD`
+ * :variable:`CMAKE_C_STANDARD_REQUIRED`
+ * :variable:`CMAKE_C_EXTENSIONS`
+ * :variable:`CMAKE_CXX_STANDARD`
+ * :variable:`CMAKE_CXX_STANDARD_REQUIRED`
+ * :variable:`CMAKE_CXX_EXTENSIONS`
+ * :variable:`CMAKE_OBJC_STANDARD`
+ * :variable:`CMAKE_OBJC_STANDARD_REQUIRED`
+ * :variable:`CMAKE_OBJC_EXTENSIONS`
+ * :variable:`CMAKE_OBJCXX_STANDARD`
+ * :variable:`CMAKE_OBJCXX_STANDARD_REQUIRED`
+ * :variable:`CMAKE_OBJCXX_EXTENSIONS`
+ * :variable:`CMAKE_CUDA_STANDARD`
+ * :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
+ * :variable:`CMAKE_CUDA_EXTENSIONS`
+
+ Their values are used to set the corresponding target properties in
+ the generated project (unless overridden by an explicit option).
+
+.. versionadded:: 3.14
+ For the :generator:`Green Hills MULTI` generator the GHS toolset and target
+ system customization cache variables are also propagated into the test project.