CMakeDetermineCompilerABI: Use normal linker flags in ABI project

When compiling the ABI detection test project, do not override
CMAKE_EXE_LINKER_FLAGS completely.  The normally selected value of this
variable may influence how the link is done and may be needed to be
representative of how the calling project will be built.  Instead pass a
variable that try_compile will reference as additional flags.  Leave
this behavior of try_compile undocumented for now.
try_compile: Pass linker flags into test project (#14066)

Copy CMAKE_EXE_LINKER_FLAGS into the test project generated by
try_compile, just like we already copy CMAKE_<LANG>_FLAGS.

Add CMake Policy CMP0056 to activate this behavior in a compatible way,
but do not warn by default when the policy is not set since it will
affect all try_compile calls.

Extend the RunCMake.try_compile test with a case covering this behavior
for each policy setting.
FindMPI: Factor out compiler wrapper execution into helper
FindMPI: Workaround Intel MPI 5.0.1 exit code problem (#15182)

This MPI compiler may return zero even in some error cases.  Check the
output to catch such cases.

Suggested-by: Kelly Thompson <kgt@lanl.gov>
VS: Inherit target-level "-wd" flags in source files (#15284)

If a source file COMPILE_FLAGS option adds "-wd", the .vcxproj file
will have a DisableSpecificWarnings setting for the source file.
Add to the setting a reference to %(DisableSpecificWarnings) to
inherit any such flags set for the whole target.
ExternalProject: Add TEST_EXCLUDE_FROM_MAIN option

If this option is enabled, the test step is created with the
EXCLUDE_FROM_MAIN option, and if TEST_BEFORE_INSTALL is enabled, the
install step does not depend on the test step.

This means that the test step is never executed, unless the test target
is explicitly created by calling ExternalProject_Add_StepTarget, or by
passing it with the STEP_TARGETS option, or with the EP_STEP_TARGETS
directory property.
Xcode: Fix rebuild with multiple custom command outputs (#15116)

The Xcode generator uses Makefiles under a run-script build-phase to
drive custom commands.  Fix the generated makefiles for custom commands
with multiple outputs to list all the outputs on the left hand side of
the build rule.  This is much simpler and more reliable than the old
multiple-output-pair infrastructure.
Makefile: Fix rebuild with multiple custom command outputs (#15116)

Fix the generated makefiles for custom commands with multiple outputs to
list all the outputs on the left hand side of the build rule.  This is
much simpler and more reliable than the old multiple-output-pair
infrastructure.
Tests: Cover rebuild with multiple custom command outputs (#15116)

Extend the BuildDepends test with a case covering multiple custom
command outputs with the second one consumed by another rule.  With the
old "multiple output pair" infrastructure used in the Makefile and Xcode
generators this did not work.  Now that it is fixed, test the case
explicitly.
ctest --launch: write to cout and cerr in binary

Because ctest reads in binary but writes in text mode, Windows' newline
transformation can be applied multiple times causing '\n' in the source
application to be written out as '\r\r\n' instead.
file: Use 'long' to represent the parsed LOCK TIMEOUT value

Convert the StringToInt helper into a StringToLong helper with a 'long'
result type.  This will make the helper more useful to other callers
that want to use strtol.

While at it, also check errno after calling strtol in case the
conversion fails with a range error.
Merge branch 'xerces-rename' into release
Add options to build CMake without latest language dialects

Set CMAKE_C_STANDARD and CMAKE_CXX_STANDARD only if they are not
already defined.  This will allow users to add the settings with
different values to their local cache (e.g. on the command line).
FindLATEX: Use FPHSA to report status in standard way

Otherwise LaTeX was marked as not found in the summary.
Also revise the documentation.
Makefile: Workaround Borland Make bug with multiple outputs

Given a rule of the form

  out1 out2: dep1
  out1 out2: dep2

Borland Make complains that there are multiple rules for "out1"
even though this works when there is only one output.  Instead
generate

  out1 out2: dep1 dep2

for Borland Make, but only when there are multiple outputs.
Merge topic 'try_compile-link-flags'

88eb5824 try_compile: Pass linker flags into test project (#14066)
a4f9b6f0 CMakeDetermineCompilerABI: Use normal linker flags in ABI project
Merge topic 'FindMPI-Intel-5.0.1'

7626c8dc FindMPI: Workaround Intel MPI 5.0.1 exit code problem (#15182)
f5ede300 FindMPI: Factor out compiler wrapper execution into helper
Merge topic 'vs-inherit-wd'

f545eb0b VS: Inherit target-level "-wd" flags in source files (#15284)
Merge topic 'ExternalProject_TEST_EXCLUDE_FROM_MAIN'

636f0c1d ExternalProject: Add TEST_EXCLUDE_FROM_MAIN option
Merge topic 'ctest-binary-pipe'

29b0c8c3 ctest --launch: write to cout and cerr in binary