CMake Nightly Date Stamp
ninja: Use string parameters
ninja: Store target-level flags in a variable

This greatly reduces the size of Ninja files projects with lots of flags
and lots of source files in libraries. ParaView goes from 110M to about
58M.
ninja: Factor out target-level order-only dependencies

This reduces ninja file output even more for projects with lots of
libraries with entangled transitive dependencies. ParaView goes from the
previous 58M to about 45M.
ninja: Factor out custom command order-only depends

This makes WebKitGTK's CMake build.ninja file go from 165M to 11M and
configure/generate in 5 seconds.
ninja: Factor out target-level definitions

Worth another 3M in the WebKit build.ninja file.
flag refactor
lang loop
ninja: Don't use a stringstream to build an argument list

Streams are expensive to construct (looks like some locale-related
stuff), so use strings instead.
CMake Nightly Date Stamp
CMake Nightly Date Stamp
ninja: Add support for custom depfile formats

Not everything that isn't MSVC is GCC. I have support for LDC's depfile
format on its way upstream[1], but its future is uncertain. CMake should
at least support this for future depfile formats.

[1]https://github.com/martine/ninja/pull/721
Merge branch 'dev/custom-ninja-deptypes' into d_support

* dev/custom-ninja-deptypes:
  ninja: Add support for custom depfile formats
  CMake Nightly Date Stamp
  CMake Nightly Date Stamp
  CMake Nightly Date Stamp
Merge commit '911235a' into d_support

* commit '911235a':
  ninja: Don't use a stringstream to build an argument list
  lang loop
  flag refactor
  ninja: Factor out target-level definitions
  ninja: Factor out custom command order-only depends
  ninja: Factor out target-level order-only dependencies
  ninja: Store target-level flags in a variable
  ninja: Use string parameters
D: GDC uses ar/ranlib rather than its own linker
D: Add support for sonames in libraries
D: Use DMD depfiles in GDC as well

The -M* flags don't work.
D: Fix the link flags for the compilers
linking: Support language-specific link flags

Adds support for the following variables:

  * CMAKE_<LANG>_LINK_LIBRARY_FLAG
  * CMAKE_<LANG>_LINK_LIBRARY_FILE_FLAG
  * CMAKE_<LANG>_LINK_LIBRARY_SUFFIX
  * CMAKE_<LANG>_LINK_PATH_FLAG
  * CMAKE_<LANG>_LINK_PATH_TERMINATOR

so that compilers with different flags can be used in the same build.
D: Update link flags for LDC and DMD