diff options
Diffstat (limited to 'Help')
-rw-r--r-- | Help/manual/cmake-policies.7.rst | 1 | ||||
-rw-r--r-- | Help/policy/CMP0111.rst | 20 | ||||
-rw-r--r-- | Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst | 142 | ||||
-rw-r--r-- | Help/release/3.18.rst | 13 | ||||
-rw-r--r-- | Help/release/dev/imported-target-location-required.rst | 5 |
5 files changed, 123 insertions, 58 deletions
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 2627e0c..ce8969b 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -57,6 +57,7 @@ Policies Introduced by CMake 3.19 .. toctree:: :maxdepth: 1 + CMP0111: An imported target with a missing location fails during generation. </policy/CMP0111> CMP0110: add_test() supports arbitrary characters in test names. </policy/CMP0110> CMP0109: find_program() requires permission to execute but not to read. </policy/CMP0109> diff --git a/Help/policy/CMP0111.rst b/Help/policy/CMP0111.rst new file mode 100644 index 0000000..37e5ad5 --- /dev/null +++ b/Help/policy/CMP0111.rst @@ -0,0 +1,20 @@ +CMP0111 +------- + +.. versionadded:: 3.19 + +An imported target with a missing location fails during generation. + +Prior to this the location would be generated as ``<TARGET_NAME>-NOTFOUND``, +which would result in build failures. + +The ``OLD`` behavior of this policy is to generate the location of an imported +unknown, static or shared library target as ``<TARGET_NAME>-NOTFOUND`` if not +set. +The ``NEW`` behavior is to raise an error. + +This policy was introduced in CMake version 3.19. CMake version |release| +warns when the policy is not set and uses ``OLD`` behavior. Use the +:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly. + +.. include:: DEPRECATED.txt diff --git a/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst index 9b53282..bac3274 100644 --- a/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst +++ b/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst @@ -13,8 +13,14 @@ The features listed here may be used with the :command:`target_compile_features` command. See the :manual:`cmake-compile-features(7)` manual for information on compile features and a list of supported compilers. +The features known to this version of CMake are listed below. -The features known to this version of CMake are: +High level meta features indicating C++ standard support +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following meta features indicate general support for the associated +language standard. It reflects the language support claimed by the compiler, +but it does not necessarily imply complete conformance to that standard. ``cxx_std_98`` Compiler mode is at least C++ 98. @@ -31,10 +37,29 @@ The features known to this version of CMake are: ``cxx_std_20`` Compiler mode is at least C++ 20. -``cxx_aggregate_default_initializers`` - Aggregate default initializers, as defined in N3605_. - .. _N3605: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3605.html +Low level individual compile features +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For C++ 11 and C++ 14, compilers were sometimes slow to implement certain +language features. CMake provided some individual compile features to help +projects determine whether specific features were available. These individual +features are now less relevant and projects should generally prefer to use the +high level meta features instead. Individual compile features are not provided +for C++ 17 or later. + +See the :manual:`cmake-compile-features(7)` manual for further discussion of +the use of individual compile features. + +Individual features from C++ 98 +""""""""""""""""""""""""""""""" + +``cxx_template_template_parameters`` + Template template parameters, as defined in ``ISO/IEC 14882:1998``. + + +Individual features from C++ 11 +""""""""""""""""""""""""""""""" ``cxx_alias_templates`` Template aliases, as defined in N2258_. @@ -56,30 +81,16 @@ The features known to this version of CMake are: .. _N2761: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf -``cxx_attribute_deprecated`` - ``[[deprecated]]`` attribute, as defined in N3760_. - - .. _N3760: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html - ``cxx_auto_type`` Automatic type deduction, as defined in N1984_. .. _N1984: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf -``cxx_binary_literals`` - Binary literals, as defined in N3472_. - - .. _N3472: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf - ``cxx_constexpr`` Constant expressions, as defined in N2235_. .. _N2235: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf -``cxx_contextual_conversions`` - Contextual conversions, as defined in N3323_. - - .. _N3323: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf ``cxx_decltype_incomplete_return_types`` Decltype on incomplete return types, as defined in N3276_. @@ -91,11 +102,6 @@ The features known to this version of CMake are: .. _N2343: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf -``cxx_decltype_auto`` - ``decltype(auto)`` semantics, as defined in N3638_. - - .. _N3638: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html - ``cxx_default_function_template_args`` Default template arguments for function templates, as defined in DR226_ @@ -121,11 +127,6 @@ The features known to this version of CMake are: .. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm -``cxx_digit_separators`` - Digit separators, as defined in N3781_. - - .. _N3781: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf - ``cxx_enum_forward_declarations`` Enum forward declarations, as defined in N2764_. @@ -163,11 +164,6 @@ The features known to this version of CMake are: .. _N2672: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm -``cxx_generic_lambdas`` - Generic lambdas, as defined in N3649_. - - .. _N3649: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html - ``cxx_inheriting_constructors`` Inheriting constructors, as defined in N2540_. @@ -183,11 +179,6 @@ The features known to this version of CMake are: .. _N2927: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf -``cxx_lambda_init_captures`` - Initialized lambda captures, as defined in N3648_. - - .. _N3648: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html - ``cxx_local_type_template_args`` Local and unnamed types as template arguments, as defined in N2657_. @@ -236,16 +227,6 @@ The features known to this version of CMake are: .. _N2439: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm -``cxx_relaxed_constexpr`` - Relaxed constexpr, as defined in N3652_. - - .. _N3652: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html - -``cxx_return_type_deduction`` - Return type deduction on normal functions, as defined in N3386_. - - .. _N3386: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3386.html - ``cxx_right_angle_brackets`` Right angle bracket parsing, as defined in N1757_. @@ -301,11 +282,6 @@ The features known to this version of CMake are: .. _N2765: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf -``cxx_variable_templates`` - Variable templates, as defined in N3651_. - - .. _N3651: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf - ``cxx_variadic_macros`` Variadic macros, as defined in N1653_. @@ -316,5 +292,61 @@ The features known to this version of CMake are: .. _N2242: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf -``cxx_template_template_parameters`` - Template template parameters, as defined in ``ISO/IEC 14882:1998``. + +Individual features from C++ 14 +""""""""""""""""""""""""""""""" + +``cxx_aggregate_default_initializers`` + Aggregate default initializers, as defined in N3605_. + + .. _N3605: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3605.html + +``cxx_attribute_deprecated`` + ``[[deprecated]]`` attribute, as defined in N3760_. + + .. _N3760: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html + +``cxx_binary_literals`` + Binary literals, as defined in N3472_. + + .. _N3472: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf + +``cxx_contextual_conversions`` + Contextual conversions, as defined in N3323_. + + .. _N3323: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf + +``cxx_decltype_auto`` + ``decltype(auto)`` semantics, as defined in N3638_. + + .. _N3638: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html + +``cxx_digit_separators`` + Digit separators, as defined in N3781_. + + .. _N3781: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf + +``cxx_generic_lambdas`` + Generic lambdas, as defined in N3649_. + + .. _N3649: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html + +``cxx_lambda_init_captures`` + Initialized lambda captures, as defined in N3648_. + + .. _N3648: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html + +``cxx_relaxed_constexpr`` + Relaxed constexpr, as defined in N3652_. + + .. _N3652: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html + +``cxx_return_type_deduction`` + Return type deduction on normal functions, as defined in N3386_. + + .. _N3386: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3386.html + +``cxx_variable_templates`` + Variable templates, as defined in N3651_. + + .. _N3651: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf diff --git a/Help/release/3.18.rst b/Help/release/3.18.rst index f199244..099e9b5 100644 --- a/Help/release/3.18.rst +++ b/Help/release/3.18.rst @@ -265,8 +265,9 @@ Other environment variable to customize colors. * The :manual:`Compile Features <cmake-compile-features(7)>` functionality - is now aware of the availability of C11 features in MSVC 19.27 and above, - including support for the ``c_restrict`` feature and the ``-std:c11`` flag. + is now aware of the availability of C11 features in MSVC 19.27 and 19.28, + including support for the ``c_restrict``, ``c_static_assert`` features and + the ``-std:c11`` flag. Deprecated and Removed Features =============================== @@ -353,4 +354,10 @@ Changes made since CMake 3.18.0 include the following. This restores compatibility with behavior of CMake 3.15 and below. * The :manual:`Compile Features <cmake-compile-features(7)>` functionality - was updated for MSVC 19.27 as mentioned above. + was updated for MSVC 19.27 as mentioned above (``c_restrict``). + +3.18.3 +------ + +* The :manual:`Compile Features <cmake-compile-features(7)>` functionality + was updated for MSVC 19.28 as mentioned above (``c_static_assert``). diff --git a/Help/release/dev/imported-target-location-required.rst b/Help/release/dev/imported-target-location-required.rst new file mode 100644 index 0000000..3625242 --- /dev/null +++ b/Help/release/dev/imported-target-location-required.rst @@ -0,0 +1,5 @@ +imported-target-location-required +--------------------------------- + +* An imported target with a missing location now fails during generation if the + location is used. See policy :policy:`CMP0111`. |