CMake Nightly Date Stamp
Fix determination of when we're evaluating compile definitions.

Also handle the config-specific property.
Rename the IncludeDirectoriesEntry to be more generic.
Don't use LINKED where not needed.
Use the link information as a source of compile definitions and includes.

After evaluating the INTERFACE_INCLUDE_DIRECTORIES, of a target in a
generator expression, also read the INTERFACE_INCLUDE_DIRECTORIES of
its link interface dependencies.

That means that code such as this will result in the 'user' target
using /bar/include and /foo/include:

 add_library(foo ...)
 target_include_directories(foo INTERFACE /foo/include)
 add_library(bar ...)
 target_include_directories(bar INTERFACE /bar/include)
 target_link_libraries(bar LINK_PUBLIC foo)

 add_executable(user ...)
 target_include_directories(user PRIVATE
    $<TARGET_PROPERTY:bar,INTERFACE_INCLUDE_DIRECTORIES>)

Also process the interface include directories from direct link
dependencies for in-build targets.

The situation is similar for the INTERFACE_COMPILE_DEFINITIONS. The
include directories related code is currently more complex because
we also need to store a backtrace at configure-time for the purpose
of debugging includes. The compile definitions related code will use
the same pattern in the future.

This is not a change in behavior, as existing code has the same effect,
but that existing code will be removed in follow-up commits.
Revert "Don't allow utility or global targets in the LINKED expression."

This reverts commit 9712362b4580fb92394ecf8ff57be186571f4319.
Don't populate INTERFACE includes and defines properties in tll.

This is a partial revert of commit 77cecb77 (Add includes and compile
definitions with target_link_libraries., 2012-11-05).

As the interface includes and defines are now determined by the link
closure, there is no need to populate the corresponding properties
explicitly.
Revert "Add the $<LINKED:...> generator expression."

This reverts commit 0b92602b816e2584db3781b120a1e5200da72ada.

Conflicts:
	Source/cmGeneratorExpressionEvaluator.cxx
	Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt
	Tests/CMakeCommands/target_include_directories/CMakeLists.txt
Revert "find_package: Reword <package>_NO_INTERFACES documentation"

This reverts commit 179f49560286e2e322b9b0cf5d0a277b7634540f.
Revert "Add a way to exclude INTERFACE properties from exported targets."

This reverts commit 2c3654c3de718fe822f8960063373774fc019494.

The removal of some tests added in commit 77cecb77 (Add includes and compile
definitions with target_link_libraries., 2012-11-05) are also squashed
into this commit.
Don't add target-specific interface includes and defines to Qt 4 targets.

This is a partial revert of commit c8ee07d0 (FindQt4: Add INTERFACE
includes and defines to Qt4 targets, 2012-12-31).
Merge topic 'linked-usage-cleanup' into next

4aae6f7 Don't add target-specific interface includes and defines to Qt 4 targets.
b84e3ab Revert "Add a way to exclude INTERFACE properties from exported targets."
95a06f9 Revert "find_package: Reword <package>_NO_INTERFACES documentation"
c72e0e2 Revert "Add the $<LINKED:...> generator expression."
050f4e7 Don't populate INTERFACE includes and defines properties in tll.
c9382e5 Revert "Don't allow utility or global targets in the LINKED expression."
f021677 Use the link information as a source of compile definitions and includes.
5c9f5e3 Don't use LINKED where not needed.
5b88504 Rename the IncludeDirectoriesEntry to be more generic.
b030323 Fix determination of when we're evaluating compile definitions.
VS: Replace generation timestamp file atomically

Since commit 34c882a9 (Allow VS 7 project Rebuild and Solution Rebuild to
work, 2007-11-10) we use a "CMakeFiles/generated.stamp" and some
associated files in the build tree to avoid re-running CMake when the
inputs have not changed but VS has cleaned the outputs it knows about.

When we do not really need to re-run we restore the generated.stamp file.
The non-re-run case can happen in multiple targets in parallel in VS >= 10
so we must restore the file atomically to avoid races.  Write the stamp
file to a random temporary name and then atomically rename it to the real
stamp file.
Merge topic 'vs-atomic-generated-stamp' into next

43a5478 VS: Replace generation timestamp file atomically
da6109d CMake Nightly Date Stamp
Fix line length.
Merge topic 'linked-usage-cleanup' into next

8351908 Fix line length.
Use the link information as a source of compile definitions and includes.

After evaluating the INTERFACE_INCLUDE_DIRECTORIES, of a target in a
generator expression, also read the INTERFACE_INCLUDE_DIRECTORIES of
its link interface dependencies.

That means that code such as this will result in the 'user' target
using /bar/include and /foo/include:

 add_library(foo ...)
 target_include_directories(foo INTERFACE /foo/include)
 add_library(bar ...)
 target_include_directories(bar INTERFACE /bar/include)
 target_link_libraries(bar LINK_PUBLIC foo)

 add_executable(user ...)
 target_include_directories(user PRIVATE
    $<TARGET_PROPERTY:bar,INTERFACE_INCLUDE_DIRECTORIES>)

Also process the interface include directories from direct link
dependencies for in-build targets.

The situation is similar for the INTERFACE_COMPILE_DEFINITIONS. The
include directories related code is currently more complex because
we also need to store a backtrace at configure-time for the purpose
of debugging includes. The compile definitions related code will use
the same pattern in the future.

This is not a change in behavior, as existing code has the same effect,
but that existing code will be removed in follow-up commits.
Revert "Don't allow utility or global targets in the LINKED expression."

This reverts commit 9712362b4580fb92394ecf8ff57be186571f4319.
Don't populate INTERFACE includes and defines properties in tll.

This is a partial revert of commit 77cecb77 (Add includes and compile
definitions with target_link_libraries., 2012-11-05).

As the interface includes and defines are now determined by the link
closure, there is no need to populate the corresponding properties
explicitly.
Revert "Add the $<LINKED:...> generator expression."

This reverts commit 0b92602b816e2584db3781b120a1e5200da72ada.

Conflicts:
	Source/cmGeneratorExpressionEvaluator.cxx
	Tests/CMakeCommands/target_compile_definitions/CMakeLists.txt
	Tests/CMakeCommands/target_include_directories/CMakeLists.txt