diff options
author | Nikita Nemkin <nikita@nemkin.ru> | 2020-11-07 20:30:30 (GMT) |
---|---|---|
committer | Nikita Nemkin <nikita@nemkin.ru> | 2020-11-09 15:51:57 (GMT) |
commit | c705279bae45c85b689febd66d5437d9ec05c9b9 (patch) | |
tree | f64bca14f17a902a96d67a30357df3d1e6c745eb /Help/command/try_compile.rst | |
parent | 63a1917d098922b59bbba8fdeb42519363d5ba0d (diff) | |
download | CMake-c705279bae45c85b689febd66d5437d9ec05c9b9.zip CMake-c705279bae45c85b689febd66d5437d9ec05c9b9.tar.gz CMake-c705279bae45c85b689febd66d5437d9ec05c9b9.tar.bz2 |
Help: Add `.. versionadded` directives to commands documentation
This change ony concerns directives that appear in the document body.
The guidelines for inserting version directives:
* Baseline version is CMake 3.0, i.e. directives start at 3.1.
* Always use `.. versionadded::` directive, avoid ad-hoc version
references. Exception: policy pages.
* For new command signatures, put `versionadded` on a separate line
after the signature.
* For a group of new signatures in a new document section,
a single version note at the beginning of the section is sufficient.
* For new options, put `versionadded` on a separate line before
option description.
* If all the option descriptions in the list are short one-liners,
it's fine to put `versionadded` on the same line as the description.
* If multiple option descriptions in close proximity would have
the same ..versionadded directive, consider adding a single
directive after the list, mentioning all added options.
* For compact value lists and sub-option lists, put a single
`versionadded` directive after the list mentioning all additions.
* When a change is described in a single paragraph, put
`versionadded` into that paragraph.
* When only part of the paragraph has changed, separate the changed
part if it doesn't break the flow. Otherwise, write a follow-up
clarification paragraph and apply version directive to that.
* When multiple version directives are close by, order earlier
additions before later additions.
* Indent related lists and code blocks to include them in the scope
of `versionadded` directive.
Issue: #19715
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. |