CMake 3.0.0-rc5
KWSys 2014-05-07 (6074f33f)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ 6074f33f | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' f3a36760..6074f33f
Ben Boeckel (22):
      ef3bfa01 c_str: Don't use .c_str() when streaming strings
      9c165368 Glob: Use string comparisons if you have them ready
      53ba0bc6 containers: Use .empty() instead of .size() where possible
      6cbb57ac strings: Use string methods instead of size calculations
      e53596b7 RegularExpression: Add string overloads
      aec9de6a CommandLineArguments: Push the string back, not its C string
      1d531416 Glob: Accept a string in Glob::AddFile
      81f5e0a8 Glob: Accept a string in Glob::AddExpression
      d40c2706 SystemTools: Remove redundant if guards
      c1296f4a SystemTools: Defer computing length until after a .empty() check
      7ffb7106 SystemTools: Use the iterator constructor for strings
      29e3b1d8 SystemTools: Use .rfind('/') rather than .find_last_of("/")
      5eb3a65c SystemTools: Don't construct a string just for its length
      b07b5fc1 SystemTools: Take a string in GetShortPath
      153f6df7 SystemTools: Use strings in ComparePath
      2c2f6604 SystemTools: Accept strings in IsSubDirectory
      84db9ee5 SystemTools: Take strings in AddTranslationPath
      4b409aa4 SystemTools: Take strings in SplitPath
      d2dbff07 SystemTools: Take strings in CollapseFullPath
      e9204f8f SystemTools: Take strings in AddKeepPath
      3254681a SystemTools: Reserve memory in JoinPath
      6074f33f SystemTools: Use static strings in SystemToolsAppendComponents

Change-Id: I53c7a1005206dba43ee785bf807c478bf146ca0e
Merge branch 'upstream-kwsys' into update-kwsys
cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION

Add ERROR_SHARING_VIOLATION to the set of errors (previously including
only ERROR_ACCESS_DENIED) that cause a rename (MoveFile) on Windows to
retry.  The condition was observed when two renames to the same target
file name were happening simultaneously.
Merge branch 'fix-atomic-rename-Windows-sharing-violation' into release
CMake Nightly Date Stamp
Merge branch 'release'
Add the WriteCompilerDetectionHeader module.

Provide a function to write a portable header to detect compiler
features.  Generate a preprocessor #error for unknown compilers
and compiler versions whose features are not yet recorded.  This
error condition might be relaxed in the future, but for now it
is useful for verification of expectations.
Merge topic 'WriteCompilerDetectionHeader-module'

62a4a67d Add the WriteCompilerDetectionHeader module.
Merge topic 'update-kwsys'

7fa16df4 Merge branch 'upstream-kwsys' into update-kwsys
7762c574 KWSys 2014-05-07 (6074f33f)
Merge topic 'fix-atomic-rename-Windows-sharing-violation'

24bd7ae1 cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION
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.
CMake Nightly Date Stamp
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.