Merge branch 'fix-atomic-rename-Windows-sharing-violation' into release
Features: Only require AppleClang policy to be NEW on APPLE.
Features: Extend concept to C language.

Add properties and variables corresponding to CXX equivalents.

Add features for c_function_prototypes (C90), c_restrict (C99),
c_variadic_macros (C99) and c_static_assert (C11). This feature
set can be extended later.

Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
to conditionally represent the c_restrict feature.
cmCTestBuildAndTestHandler: Refactor local loop var
cmCTestBuildAndTestHandler: Refactor output capture

Use an RAII class to add and remove callbacks.
cmSystemTools: Rename ErrorCallback to MessageCallback

Clarify that it is the callback for the cmSystemTools::Message API.
Rename callback clients too.
cmSystemTools: Simplify InterruptCallback definition

Use the typedef to declare the member instead of duplicating the type.
Use default initialization instead of an explicit zero initializer.
cmSystemTools: Add callback for Stderr

Factor a common callback type out of StdoutCallback.  Add an equivalent
StderrCallback.  While at it, use "size_t" for the data length instead
of "int".

Teach "ctest --build-and-test" to capture the Stderr callback because
output sent through it is part of the logical CMake process output.
cmake-gui: Capture cmSystemTools::Stdout and Stderr

Output sent through these APIs is logically part of the CMake process
output.  Capture it with callbacks and display it in the cmake-gui
output window along with other messages.
execute_process: Send stderr through cmSystemTools::Stderr

Give cmake-gui and ctest --build-and-test a chance to capture the output
instead of sending it to the real stderr.
Help: Add notes for topic 'cmake-gui-capture-output'
Merge branch 'release'
Features: Use the features symbol in the feature-test compile.

Clang discards the entire string if it is not used, removing
the ability to read the features from the compiled binary. That
is prevented by using the symbol.

GNU with -O3 also discards the string, so use the string in a
way which is determined by a runtime value (argc) to prevent
it being discarded.
Xcode: Refactor internal source file type selection

Choose the attribute name and file type and send them through a single
attribute generation code path.  Compute the file extension only when
needed.  Leave the file type selection logic indented in a block so it
can be made conditional later.
Xcode: Add source file property to control file type (#14854)

Add source file properties to control Xcode file type attributes:

  XCODE_EXPLICIT_FILE_TYPE   => explicitFileType
  XCODE_LAST_KNOWN_FILE_TYPE => lastKnownFileType

Add a RunCMake.XcodeProject test to verify generated project content.
CMake Nightly Date Stamp
CTest: Fix MUMPS coverage parsing and test

Fix the MUMPS coverage parser:

* Account for tabs after entry points

* Stop double incrementing lines that have explicit calls to the 0 line

* If a line has been previously marked as non executable, but then
  contains a count, increment it an extra one to push it back into
  the executable code set.

Add a custom routine and corresponding coverage files in the test case.
This file is smaller and has cmcov/mcov files that have data for only
that routine.
Merge topic 'fix_mumps_coverage'

9ad07fbe CTest: Fix MUMPS coverage parsing and test
Merge topic 'cmake-gui-capture-output'

209cd475 Help: Add notes for topic 'cmake-gui-capture-output'
d7c69246 execute_process: Send stderr through cmSystemTools::Stderr
92ddf0c9 cmake-gui: Capture cmSystemTools::Stdout and Stderr
f52b5ae3 cmSystemTools: Add callback for Stderr
a9ae1d7a cmSystemTools: Simplify InterruptCallback definition
73b13f56 cmSystemTools: Rename ErrorCallback to MessageCallback
7577a542 cmCTestBuildAndTestHandler: Refactor output capture
b1b4d761 cmCTestBuildAndTestHandler: Refactor local loop var
Merge topic 'xcode-file-type'

a339ea65 Xcode: Add source file property to control file type (#14854)
ae80cb9f Xcode: Refactor internal source file type selection