VS10: Simplify vcxproj.filter file generation

Remove the duplicate source file classification logic used to generate
the filter files.  Instead record during the main vcxproj file
generation the source files generated for each tool.  Also record
whether or not each source file is converted to a relative path.  Use
the recorded result during filter generation to ensure consistency
between the project file and filter file.
VS10: Convert paths normally unless forced to relative

Most CMake generators produce relative paths within the build tree and
full paths to files outside the build tree.  Make VS 10 and VS 11
project files consistent with this approach except for paths forced to
be relative to work around a VS 10 bug.
VS11: Do not use source path conversion workaround specific to VS 10

CMake <= 2.8.4 generated VS 10 project files with a relative path to
source files.  Then commit ed0075bd (Use relative paths for custom command
inputs, 2011-06-22) switched to using relative paths only for source files
holding custom commands and full paths for other sources.  This behavior
was inhereted by the VS 11 generator but is not needed so use the
workaround only for exactly VS 10.  Explain the behavior in comments.
VS10: Generate relative source paths when possible (#12570)

Since commit ed0075bd (Use relative paths for custom command inputs,
2011-06-22) CMake generates full paths to source files in VS 10 project
files to avoid trouble with deep source/build tree paths.  However, the VS
10 IDE will not populate the source file property dialog for a file
referenced by full path.  Instead use a relative path when possible.  When
not possible produce a detailed warning explaining the problem and
suggesting use of shorter directory paths.
CMake Nightly Date Stamp
ExternalProject: Refactor repeated code into function (#12564)

Add "private/internal-use-only" function _ep_get_step_stampfile
to get the name of the stamp file for a given step.

The functionality provided by this commit should be identical
to its parent commit.
ExternalProject: Avoid repeated git clone operations (#12564)

By tracking a stamp file within the git clone script itself.

Avoids a 2nd git clone operation after switching from Debug
to Release builds in Visual Studio, or vice-versa.
CMake Nightly Date Stamp
CMake Nightly Date Stamp
Intel: On Windows use /RTC1 instead of deprecated /GZ (#13174)
Support building shared libraries or modules without soname (#13155)

Add a boolean target property NO_SONAME which may be used to disable
soname for the specified shared library or module even if the platform
supports it.  This property should be useful for private shared
libraries or various plugins which live in private directories and have
not been designed to be found or loaded globally.

Replace references to <CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG> and
hard-coded -install_name flags with a conditional <SONAME_FLAG> which is
expanded to the value of the CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG
definition as long as soname supports is enabled for the target in
question.  Keep expanding CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG in
rules in case third party projects still use it.  Such projects would
not yet use NO_SONAME so the adjacent <TARGET_SONAME> will always be
expanded.  Make <TARGET_INSTALLNAME_DIR> NO_SONAME aware as well.  Since
-install_name is soname on OS X, this should not be a problem if this
variable is expanded only if soname is enabled.

The Ninja generator performs rule variable substitution only once
globally per rule to put its own placeholders.  Final substitution is
performed by ninja at build time.  Therefore we cannot conditionally
replace the soname placeholders on a per-target basis.  Rather than
omitting $SONAME from rules.ninja, simply do not write its contents for
targets which have NO_SONAME.  Since 3 variables are affected by
NO_SONAME ($SONAME, $SONAME_FLAG, $INSTALLNAME_DIR), set them only if
soname is enabled.
Test NO_SONAME property (#13155)

Teach the Plugin test to check that the NO_SONAME target property works
as documented.  Check that the IMPORTED targets are written with the
correct properties.  When readelf is available use it to check the
actual binary files for SONAME fields.
cmake-gui: Wait for configure/generate thread to complete before exiting.

A prevous fix to interrupt granularity makes it so we don't have to wait very long.
CMake Nightly Date Stamp
Add test for mumps coverage. Also refactor code to prepare for cache coverage.

Add a simple test to make sure the GTM mumps coverage is working.
Also refactor the code so that cache coverage can be added.
Merge topic 'kwsys-remove-DateStamp'

5f807a6 KWSys: Remove DateStamp
Merge topic 'try-compile-cleanup-dirs'

953257c try_compile: Cleanup temporary directories (#13160)
Merge topic 'developer-setup'

c9072f8 Merge branch 'setup' into developer-setup
b7daff9 setup-stage: Optionally reconfigure topic stage
Merge topic 'ctest_memcheck-xml-encoding'

3da577d CTest: Escape MemCheck test output for XML (#13124)
Merge topic 'doc-html-anchors'

dfccdd6 Documentation: Fix HTML anchor ranges