7d9e66a405 Ninja: Remove non cmNinjaBuild based WriteBuild method
ccf9507956 Ninja: Use cmNinjaBuild class for WriteBuild
df06c8d792 Ninja: Use cmNinjaBuild class for WriteBuild
409922f695 Ninja: Use cmNinjaBuild class for WriteBuild
7fd3811400 Ninja: Use cmNinjaBuild class for WriteBuild
834ec4ebfe Ninja: Use cmNinjaBuild class for WriteBuild
465d6d7f9b Ninja: Use cmNinjaBuild class for WriteBuild
4c9e99e1f9 Ninja: Use cmNinjaBuild class for WriteBuild
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3403
Avoid listing the same input more than once in custom commands generated
in `.vcxproj` and `.csproj` files. In the case of a `.vcxproj` file
additionally avoid listing the source to which the command is attached
since it is already implicitly a dependency.
This is a nice cleanup and also works around a VS 2019 16.1 regression
in MSBuild dependency checking. Starting with that version, MSBuild now
re-builds custom commands when the list of dependencies has changed.
However, its check is confused by duplicate dependencies.
De-duplicating them avoids this problem.
Co-Author: Brad King <brad.king@kitware.com>
Fixes: #19303
6136ab5e17 Ninja: Use cmNinjaRule as sole parameter in the WriteRule and AddRule methods
6a23fbce47 Ninja: Add cmNinjaRule class
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3393
Entries of the `CPATH` environment variable are implicitly searched as
include directories by some C/C++ compilers. Since commit 5990ecb741
(Compute implicit include directories from compiler output, 2018-12-07,
v3.14.0-rc1~108^2) these entries are detected by CMake and included in
the `CMAKE_{C,CXX}_IMPLICIT_INCLUDE_DIRECTORIES` variables.
However, we should not exclude them from explicit specification via `-I`
or particularly `-isystem` because they are meant as user-specified
include directories that can be re-ordered without breaking compiler
builtin headers. In particular, we need explicit requests via
`include_directories` with the `SYSTEM` option to result in `-isystem`
so that third-party headers do not produce warnings.
Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
Fixes: #19291