When linking with cmake and vs_link_* the command line
could be too long for cmd.exe, which needs not to be
called in this case. (was not cached by a test)
Introduce rules which don't use the shell and use this
rule when there are no pre or post step.
For free we get a small speedup, because cmd is then
not called.
Also be more accurate when estimating the
command line length.
All tests are passing as of this morning on the CMake dashboard in
the Nightly Expected section.
Nice job to all the Ninja+CMake contributors. Congrats!
We had complaints that people couldn't install the CMake source
tarball on some secure systems because there were "corrupt bz2
files" in it... We do not use these sample*.bz2 files anyhow
in the CMake build, so we'll just remove them.
This reverts commit 7b91c3dfac.
(Nice try, but we're going to keep our 79 character line length
limit unless there is discussion first, and everybody agrees
on a new higher value...)
rc.exe doesn't support /showIncludes.
Because .rc files also #include stuff we can
misuse cl.exe to get the included files.
Done one the fly by cmcldeps.
Windows and Apple machines have predominantly used case-insensitive
filesystems so our file(INSTALL) command uses case-insensitive pattern
matching. It is implemented by converting the pattern and file path to
lower case before matching. The FILES_MATCHING option is implemented by
excluding a path that does not match any pattern unless it is a
directory that must be searched recursively. However, the test that an
excluded path is a directory is executed on the lower-case path and
therefore fails on mixed-case input paths on case-sensitive filesystems.
Fix the file(INSTALL) implementation to use the lower-case path only for
pattern matching and preserve the original path for tests against the
real filesystem.
bd34963 Refactor generation of shared library flags
55d7aa4 Add platform variable for flags specific to shared libraries
31d7a0f Add platform variables for position independent code flags