From 3f5b682bfd1f13c55a1eb6b783cbd3c61f664a7b Mon Sep 17 00:00:00 2001 From: Fredrik Medley Date: Thu, 3 Sep 2015 21:27:19 +0200 Subject: Describe why to use relative paths Ninja does resolve relative paths and file system links in paths. Therefore, such paths pointing to the same file will not match and may lead to an invalid dependency graph. Signed-off-by: Fredrik Medley --- doc/manual.asciidoc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/manual.asciidoc b/doc/manual.asciidoc index 003c71e..47b7456 100644 --- a/doc/manual.asciidoc +++ b/doc/manual.asciidoc @@ -598,6 +598,11 @@ rule cc command = cl /showIncludes -c $in /Fo$out ---- +If the include directory directives are using absolute paths, your depfile +may result in a mixture of relative and absolute paths. Paths used by other +build rules need to match exactly. Therefore, it is recommended to use +relative paths in these cases. + [[ref_pool]] Pools ~~~~~ @@ -889,6 +894,9 @@ header file before starting a subsequent compilation step. (Once the header is used in compilation, a generated dependency file will then express the implicit dependency.) +File paths are compared as is, which means that an absolute path and a +relative path, pointing to the same file, are considered different by Ninja. + Variable expansion ~~~~~~~~~~~~~~~~~~ -- cgit v0.12