diff options
Diffstat (limited to 'Help/command/try_compile.rst')
-rw-r--r-- | Help/command/try_compile.rst | 120 |
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. |