Rename CMP0021 to CMP0019 and drop reserved spots in between

The other policies under development using CMP0019 and CMP0020 will be
renumbered and added later.  They may not be in 2.8.11 so it is simplest
to avoid confusion by not skipping any policy numbers.
Add policy CMP0019 to skip include/link variable re-expansion

Historically CMake has always expanded ${} variable references in the
values given to include_directories(), link_directories(), and
link_libraries().  This has been unnecessary since general ${}
evaluation syntax was added to the language a LONG time ago, but has
remained for compatibility with VERY early CMake versions.

For a long time the re-expansion was a lightweight operation because it
was only processed once at the directory level and the fast-path of
cmMakefile::ExpandVariablesInString was usually taken because values did
not have any '$' in them.  Then commit d899eb71 (Call
ExpandVariablesInString for each target's INCLUDE_DIRECTORIES,
2012-02-22) made the operation a bit heavier because the expansion is
now needed on a per-target basis.  In the future we will support
generator expressions in INCLUDE_DIRECTORIES with $<> syntax, so the
fast-path in cmMakefile::ExpandVariablesInString will no longer be taken
and re-expansion will be very expensive.

Add policy CMP0019 to skip the re-expansion altogether in NEW behavior.
In OLD behavior perform the expansion but improve the fast-path
heuristic to match ${} but not $<>.  If the policy is not set then warn
if expansion actually does anything.  We expect this to be encountered
very rarely in practice.
Merge topic 'skip-variable-re-expansion' into next

f395310 Rename CMP0021 to CMP0019 and drop reserved spots in between
Merge topic 'skip-variable-re-expansion' into next

711b63f Add policy CMP0019 to skip include/link variable re-expansion
Xcode: Remove old incorrect framework path computation (#13397)

The Xcode generator originally generated FRAMEWORK_SEARCH_PATHS from the
frameworks in the include_directories path and discovered during
old-style link libraries analysis, added by commit commit 82bb6fae (add
framework support to FIND_FILE, 2005-12-27).  Later a second setting was
added by commit 2ed6191f (add initial xcode framework stuff,
2007-05-08).  Then commit 96fd5909 (Implement linking with paths to
library files, 2008-01-22) updated the second setting to use the results
of full modern link dependency analysis.

The value computed for the original setting of FRAMEWORK_SEARCH_PATHS is
not correct.  We already handle include directories separately.  The
old-style link libraries analysis did not include framework directories
from dependencies.  Remove the original setting because it gets in the
way of the second, modern logic to set it.
Makefile: Use modern link information for framework search paths

Use cmComputeLinkInformation::GetFrameworkPaths to get the list of
framework paths needed by the linker.  Drop the now unused framework
information from the old-style cmTarget link dependency analysis.
Merge topic 'xcode-framework-paths' into next

11d6894 Makefile: Use modern link information for framework search paths
a444807 Xcode: Remove old incorrect framework path computation (#13397)
Xcode: Restore include directories in framework paths

The grandparent commit mistakenly removed the transformation of
include_directories of the form /path/to/Foo.framework to framework
search path options like -F/path/to.  Restore it and move the addition
of framework search paths needed for linking so that we add paths in
only one place.
Xcode: Add frameworks search paths from link dependeny closure (#13397)

The Xcode generator produces FRAMEWORK_SEARCH_PATHS from:

(1) Include directories of the form /path/to/Foo.framework become
    -F/path/to so '#include <Foo/H>' can find H in the framework.

(2) Linked frameworks of the form /path/to/Foo.framework become
    -F/path/to -framework Foo so the linker can find the framework.

Originally commit 82bb6fae (add framework support to FIND_FILE,
2005-12-27) added these and used the (then current) old-style link
dependency analysis results to get the frameworks.  Later a second
setting was added by commit 2ed6191f (add initial xcode framework stuff,
2007-05-08) to transform -F/path/to linker options produced by the old
link line generation into entries appended to FRAMEWORK_SEARCH_PATHS.
Then commit 96fd5909 (Implement linking with paths to library files,
2008-01-22) updated the second setting to directly use the results of
full modern link dependency analysis, but forgot to remove the use of
old-style link results from the original setting location.

The two settings worked together for a while, with the second one
appending to the first.  Then commit f33a27ab (Generate native Xcode 3.0
and 3.1 projects, 2009-06-29) changed the internal representation format
produced by the first setting but did not update the second setting to
append to the new representation.  As a result, if the first setting
added any paths (usually via the old-style link analysis) then the
second setting containing the modern link analysis results would not be
applied at all.

Fix this by removing use of the old-style link analysis results.
Replace it using the modern link dependencies and remove the second
setting altogether.  Now all values for FRAMEWORK_SEARCH_PATHS are
collected in one place so no special append logic is needed.
Makefile: Use modern link information for framework search paths

Use cmComputeLinkInformation::GetFrameworkPaths to get the list of
framework paths needed by the linker.  Drop the now unused framework
information from the old-style cmTarget link dependency analysis.
Merge topic 'xcode-framework-paths' into next

65dd18f Xcode: Restore include directories in framework paths
Merge topic 'xcode-framework-paths' into next

f0d9385 Makefile: Use modern link information for framework search paths
2bc22bd Xcode: Add frameworks search paths from link dependeny closure (#13397)