Help: Drop compile features section from cmake-developer(7) manual

We no longer add granular compile features.  Only language standard
meta features like `cxx_std_##`` need to be added, and these can
be done by following existing patterns.
This commit is contained in:
Brad King
2018-11-14 09:33:41 -05:00
parent 06cc050c1f
commit 3e5a047f1a

View File

@@ -16,53 +16,6 @@ source tree itself, and by those authoring externally-maintained modules.
See https://cmake.org/get-involved/ to get involved in development of
CMake upstream.
Adding Compile Features
=======================
CMake reports an error if a compiler whose features are known does not report
support for a particular requested feature. A compiler is considered to have
known features if it reports support for at least one feature.
When adding a new compile feature to CMake, it is therefore necessary to list
support for the feature for all CompilerIds which already have one or more
feature supported, if the new feature is available for any version of the
compiler.
When adding the first supported feature to a particular CompilerId, it is
necessary to list support for all features known to cmake (See
:variable:`CMAKE_C_COMPILE_FEATURES` and
:variable:`CMAKE_CXX_COMPILE_FEATURES` as appropriate), where available for
the compiler. Ensure that the ``CMAKE_<LANG>_STANDARD_DEFAULT`` is set to
the computed internal variable ``CMAKE_<LANG>_STANDARD_COMPUTED_DEFAULT``
for compiler versions which should be supported.
It is sensible to record the features for the most recent version of a
particular CompilerId first, and then work backwards. It is sensible to
try to create a continuous range of versions of feature releases of the
compiler. Gaps in the range indicate incorrect features recorded for
intermediate releases.
Generally, features are made available for a particular version if the
compiler vendor documents availability of the feature with that
version. Note that sometimes partially implemented features appear to
be functional in previous releases (such as ``cxx_constexpr`` in GNU 4.6,
though availability is documented in GNU 4.7), and sometimes compiler vendors
document availability of features, though supporting infrastructure is
not available (such as ``__has_feature(cxx_generic_lambdas)`` indicating
non-availability in Clang 3.4, though it is documented as available, and
fixed in Clang 3.5). Similar cases for other compilers and versions
need to be investigated when extending CMake to support them.
When a vendor releases a new version of a known compiler which supports
a previously unsupported feature, and there are already known features for
that compiler, the feature should be listed as supported in CMake for
that version of the compiler as soon as reasonably possible.
Standard-specific/compiler-specific variables such
``CMAKE_CXX98_COMPILE_FEATURES`` are deliberately not documented. They
only exist for the compiler-specific implementation of adding the ``-std``
compile flag for compilers which need that.
Help
====