CMake Nightly Date Stamp
Make this a shared library.
Merge topic 'IMPORTED-build-dependencies' into next

a4f859c Make this a shared library.
Ninja: Track configured files so we can regenerate them.

Unlike the Makefile generator the ninja generator did not tack any of
its output files, so if they are deleted the generator would not run.
cmMakefile: Track configured files so we can regenerate them (#13582)

Currently when a configured file is removed from the build directory,
running the build command will not regenerate the file. Now detect
this and will rerun cmake properly when a user issues the build
command.
Merge topic '13582_configured_file_regeneration' into next

ad50250 cmMakefile: Track configured files so we can regenerate them (#13582)
4a6397a Ninja: Track configured files so we can regenerate them.
Merge branch 'master' into next
Merge topic 'makefile_AddCMakeOutputFile_signature'

6dbd4a5 cmMakefile: Refactor AddCMakeDependFile  and AddCMakeOutputFile.
Merge topic '13582_configured_file_regeneration'

ad50250 cmMakefile: Track configured files so we can regenerate them (#13582)
4a6397a Ninja: Track configured files so we can regenerate them.
Add a test to expose a bug with add_custom_command and ninja.

Ninja Generator is unable to handle an add_custom_command having
a dependency that is generated at build time by a previous target.
Ninja: GlobalNinjaGenerator WriteBuild and WritePhonyBuild non static

To properly track the usage of dependencies that are generated at
compile time as the side effect of other build steps we need
to make the WriteBuild and WritePhonyBuild commands non static
Ninja: Custom Command file depends don't need to exist before building

When converting custom commands for the ninja build system we
need to make sure that any file dependencies that exist in the build
tree are converted to phony targets. This tells ninja that these
files might not exist when starting the build, but could be generated
during the build.

This is done by tracking all dependencies for custom command targets.
After all have been written out we remove all items from the set
that have been seen as a; target, custom command output, an alias,
or a file in the source directory. Anything that is left is considered
to be a file that will be generated as a side effect of another
custom command.

Conflicts:
	Source/cmGlobalNinjaGenerator.cxx
Merge topic 'ninja_phony_targets' into next

bd2ce85 Ninja: Custom Command file depends don't need to exist before building
20d7ae7 Ninja: GlobalNinjaGenerator WriteBuild and WritePhonyBuild non static
88d27ad Add a test to expose a bug with add_custom_command and ninja.