FindCUDA: Fix NPP library search for CUDA 5.5

In CUDA 5.5 NPP was divided onto 3 separate libraries: nppc, npps, nppi.
MSVC: Add /FS flag for cl >= 18 to allow parallel compilation (#14492)

In generators such as Ninja that can run multiple "cl" processes that
refer to the same compiler .pdb file (/Fd) at the same time, MSVC from
Visual Studio 2013 complains:

 fatal error C1041: cannot open program database '.../vc120.pdb';
 if multiple CL.EXE write to the same .PDB file, please use /FS

According to "cl /?":

 /FS force to use MSPDBSRV.EXE

Add the flag to compilation lines for this compiler version just after the
/Fd option.
CMP0022: Output link interface mismatch for static library warning

Other warnings for the same policy already have similar output since
commit 81d2793e (Add differing target property content to policy CMP0022
warning, 2013-09-11).
Don't add invalid content to static lib INTERFACE_LINK_LIBRARIES.

Only valid target names or generator expressions may appear in
the target field of a LINK_ONLY expression.

Other content like link flags should still be added to that property
(wrapped in config-specific generator expressions), but not wrapped
in LINK_ONLY. Otherwise undue warnings would be issued for the
policy CMP0022.

The LINK_ONLY expression only has an effect for actual target
names anyway, so there is no logical deficit.
Genex: Reject $<TARGET_FILE:...> for object libraries (#14532)

Teach the cmGeneratorExpressionEvaluator filesystem artifact logic
to reject OBJECT_LIBRARY targets since they have no main artifact.
Without the explicit rejection evaluation falls through to an
internal CMake error message in cmTarget::GetOutputInfo.

Extend the RunCMake.GeneratorExpression test to cover these cases.
Check for OBJECT_LIBRARY source files at start of generation

Teach cmGlobalGenerator::CheckTargets to include OBJECT_LIBRARY targets
in the check for source file existence.

Extend the RunCMake.ObjectLibrary test to cover this case.
Merge branch 'output-CMP0022-entries' into policy-CMP0022-fixes
CMP0022: Add unit test for null pointer check and message.
CMP0022: Add test for target_link_libraries plain signature
CMP0022: Plain target_link_libraries must populate link interface

The CMP0022 NEW behavior is that the INTERFACE_LINK_LIBRARIES property
exactly defines the link interface.  The plain target_link_libraries
signature says linking is transitive by default, so it should populate
the property.

Teach the target_link_libraries plain signature to populate the
INTERFACE_LINK_LIBRARIES regardless of the CMP0022 setting.  Refactor
the cmTarget::ComputeLinkInterface checks that warn when the policy is
not set to compare the new property to either the explicitly set old
link interface properties or the link implementation fallback for all
linkable target types, not just static libraries.

This fixes a regression in 2.8.12.0 that caused target_link_libraries to
not implement transitive linking in the plain signature once the policy
CMP0022 is set to NEW.
Merge branch 'FindCUDA-NPP-5.5' into release
Merge branch 'vs12-parallel-cl-FS' into release
Merge branch 'object-library-missing-source' into release
Merge branch 'object-library-no-TARGET_FILE' into release
Do not export INTERFACE_LINK_LIBRARIES from non-linkable targets

When cmExportFileGenerator::SetImportLinkInterface exports the old
LINK_INTERFACE_LIBRARIES property values it skips doing so for
non-linkable targets because target->GetLinkInterface returns NULL for
such targets.

Since cmExportFileGenerator::PopulateInterfaceLinkLibrariesProperty
looks at the INTERFACE_LINK_LIBRARIES property directly instead of using
the computed link interface, teach it to skip exporting the property if
target->IsLinkable returns false.

Extend the RunCMake.CMP0022 test with a case covering this.  Simply
export an executable target that links to a library that is not
exported.
CMP0022: Warn about a given target at most once

Since cmTarget::ComputeLinkInterface is called separately for each
"head" target that links a target, the warning we produce when
CMP0022 is not set could be repeated.  Add explicit logic to allow
the warning to appear at most once.  Multiple copies of the warning
for the same target are almost always identical and therefore
redundant.  In the rare case that two copies of the warning are
different, the second can appear in a future run after the first
is fixed.
Fix spelling in INTERFACE_LINK_LIBRARIES documentation (#14542)

s/overriden/overridden/
Fix summary documentation of INTERFACE_LINK_LIBRARIES

The property applies to all library types, not just shared libraries.
Merge branch 'policy-CMP0022-fixes' into release
file(GENERATE): Clear internal records between configures

In the CMake interactive dialogs cmGlobalGenerator::Configure may
run more than once.  Clear the cmGlobalGenerator::EvaluationFiles
data between configures to avoid accessing deleted data.