CMake Nightly Date Stamp
cmComputeTargetDepends: Track object library depends.

Relieve cmGeneratorTarget of that responsibility.
cmGeneratorTarget: Compute consumed object libraries on demand.

Remove up-front object library computation from cmGlobalGenerator.

Adjust tests for message coming from the generator expression
evaluation.
cmTarget: Compute languages from object libraries on demand.
cmGeneratorTarget: Compute target objects on demand

Add a ComputeObjectMapping method to compute the object
names.  It takes mapping to populate as an out-parameter so
that it can be extended in the future with parameters
relevant to generator expression evaluation.

Remove the supporting cmGeneratorTarget::AddObject method. It is
no longer needed as the container member is populated directly.

The ComputeObjectMapping method is called whenever objects are
requested from the cmGeneratorTarget.  Because the Xcode generator
makes no such request, explicitly invoke the method from that
generator so that the logic of checking for bad sources in object
libraries is executed.

In a follow-up, the UseObjectLibraries usage may be replaced by a
true generator expression evaluator for TARGET_OBJECTS. That
will require generators to use cmGeneratorTarget::GetExternalObjects
which is not currently the case for Xcode and VS generators.
Genex: Only evaluate TARGET_OBJECTS to determine target sources.

The output of this expression may contain macros for IDEs to replace
such as $(Configuration), $(CURRENT_ARCH) etc.  To avoid generating
content which is not usable in other contexts, report an error if
there is an attempt to use it in other contexts.

This commit may be reverted in the future if a solution to the
above difference is implemented.
Merge topic 'target-sources-refactor' into next

eaad8aaa Genex: Only evaluate TARGET_OBJECTS to determine target sources.
16350f18 cmGeneratorTarget: Compute target objects on demand
6f297db4 cmTarget: Compute languages from object libraries on demand.
94b05f6e cmGeneratorTarget: Compute consumed object libraries on demand.
2753f305 cmComputeTargetDepends: Track object library depends.
ExternalProject: Strip trailing space from git hash
ExternalProject: Better handling of git remote branches

ExternalProject handles git remote branches by commit hash. Due to
this, the git repository ends in detached states, and local commits
are discarded.

This patch uses "git pull --rebase" for remote branches instead of
git checkout. If there are local changes, "git stash" is used to save
the changes and restore them after the pull. If any of these operation
fails, it tries to restore the original status and exits with a fatal
error, asking the user to resolve the conflicts manually.

This also makes the behaviour of ExternalProject using git more similar
to the svn version, and probably more likely to what the user expects
by setting GIT_TAG to a branch.
Merge topic 'fix-CTestTestMemcheck-xcode2-missing-dirs'

27b81213 Tests/CTestTestMemcheck: Help Xcode 2.x create output dirs
Merge topic 'suppress-diagnostic-context-note-warnings'

53674755 CTestCustom: Suppress "note: in expansion of macro" diagnostic context
Merge topic 'threads-cleanup'

693f8bf3 FindThreads: simplify checking for SunOS
858ce31f FindThreads: avoid useless checks if a thread library is already found
fdf7bd27 FindThreads: replace MATCHES with STREQUAL
Merge topic 'osx-CFBundle-info-plist'

90e22f8f OS X: Fix Info.plist placement in a CFBundle
Merge branch 'master' into next
Merge topic 'ExternalProject_GitUpdate' into next

64d78bd6 ExternalProject: Better handling of git remote branches
49bed21a ExternalProject: Strip trailing space from git hash
Watcom: Correct single quote processing for linker on POSIX hosts
Watcom: Rename single-quoting infrastructure to be Watcom-specific
Merge topic 'link-line-quoting' into next

77b09168 Watcom: Rename single-quoting infrastructure to be Watcom-specific
0fc1034e Watcom: Correct single quote processing for linker on POSIX hosts
cmLocalUnixMakefileGenerator3: Re-organize ConvertToQuotedOutputPath

Use one code path whether the components list is empty or not.
Fix indentation accordingly.
Makefile: Generate single-quoted object lists for Watcom

Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile
generators.  The underlying problem is with the Watcom linker, not with
WMake.  The Watcom linker wants object files to be single-quoted.  Add
<LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the
generators to use Watcom-style single quotes for object files on link
lines.

On Windows, Watcom uses the GetCommandLine API to get the original
command-line string and do custom parsing that expects single quotes.
On POSIX systems, Watcom approximates the original command line by
joining all argv[] entries separated by a single space.  Therefore we
need to double-quote the single-quoted arguments so that the shell does
not consume them and they are available for the parser to see.