cmGlobalGenerator: Call SetGeneratorToolset even for empty toolset

Move handling of an empty toolset name into the implementation of the
method.  This simplifies the VS 10 implementation of default toolset
selection because it has one code path that is always called.
cmGlobalVisualStudio10Generator: Re-order some methods

Order SetSystemName and SetGeneratorToolset method declarations
and definitions as they are called.
VS: Refactor internal default platform name selection

Rename the 'PlatformName' member to 'DefaultPlatformName' and make
sure it is only read through a 'GetPlatformName()' call.  This will
allow non-default names to be chosen later.
Help: Document CMAKE_VS_PLATFORM_NAME variable
CMake: Add CMAKE_GENERATOR_PLATFORM option

Reject the option by default.  It will be implemented on a per-generator
basis.  Pass the setting into try_compile project generation.  Add cache
entry CMAKE_GENERATOR_PLATFORM and associated variable documentation to
hold the value persistently.

Add a RunCMake.GeneratorPlatform test to cover basic use cases for the
option.  Verify that CMAKE_GENERATOR_PLATFORM is empty by default, and
that it is rejected when the generator does not support a user setting.
VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8

For VS generator names that do not specify the platform name, read
CMAKE_GENERATOR_PLATFORM to get it.

Extend the RunCMake.GeneratorPlatform test with a case covering
use of the x64 platform when the test generator is a Visual Studio
generator whose name does not specify a platform.
CTest: Add options to set generator platform

The ctest_configure command already reads the CTEST_CMAKE_GENERATOR
variable to get the value for the cmake -G option.  Read new variable
CTEST_CMAKE_GENERATOR_PLATFORM to pass on as CMAKE_GENERATOR_PLATFORM.

The "ctest --build-and-test" mode already has "--build-generator" to
specify the -G option to CMake.  Add a "--build-generator-platform" option
to specify a value to pass on as CMAKE_GENERATOR_PLATFORM.
ExternalProject: Propagate the generator platform

When the CMAKE_GENERATOR option is given to ExternalProject_Add, look
also for option CMAKE_GENERATOR_PLATFORM to pass on to cmake as a cache
definition.  When no CMAKE_GENERATOR option is given explicitly then use
the current project's CMAKE_GENERATOR_PLATFORM (since we already use its
CMAKE_GENERATOR).
KWSys 2014-09-08 (fb77be5a)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ fb77be5a | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' 32023afd..fb77be5a
Brad King (1):
      80e852f6 kwsysPlatformTests: Use if(DEFINED) to simplify conditions

Clinton Stimpson (2):
      93eb1a1f SystemTools: Improve RelativePath() to handle ./ ../ and //
      fb77be5a SystemTools: Fix GetCasePathName to handle wildcards on Windows.

Change-Id: Ieff09366e214055be0b62eae42fc64f3bb3b6e76
Merge branch 'upstream-kwsys' into update-kwsys
Tolerate symlinks during RPATH ordering (#13429)

On Arch Linux, /lib and /lib64 are symlinks to /usr/lib.  When ordering
runtime library search paths, we must not consider these to be distinct
directories.  Before considering conflicts between two directories,
check that they do not have the same 'realpath'.

Inspired-by: Myles English <mylesenglish@gmail.com>
FindIce: Remove unneeded search path modification

Drop code adding redundant "/opt/Ice-${ice_version}" paths.
FindIce: Respect Ice_FIND_QUIETLY when printing messages
StringUuid: Mark UPPER flag optional in sub-command synopsis
Tests: Add generator platform support

Propagate CMAKE_GENERATOR_PLATFORM through the test hierarchy so that all
tests can build with the selected generator platform, if any.
enable_language: Initialize system-specific generator info only once

Call SetSystemName, SetGeneratorPlatform, and SetGeneratorToolset
exactly once after reading CMakeSystem.cmake, and not again on another
call to enable_language() or project().
Merge topic 'tolerate-lib-dir-symlink'

f99cc9c3 Tolerate symlinks during RPATH ordering (#13429)
Merge topic 'string-uuid-doc-fix'

e6ba52e8 StringUuid: Mark UPPER flag optional in sub-command synopsis
Merge topic 'FindIce-updates'

2131aedd FindIce: Respect Ice_FIND_QUIETLY when printing messages
d5047ca1 FindIce: Remove unneeded search path modification
Merge topic 'update-kwsys'

daab3b3b Merge branch 'upstream-kwsys' into update-kwsys
92b582a6 KWSys 2014-09-08 (fb77be5a)