| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Flush stdout after printing "Cleaning..." message
|
| | |
|
|/
|
|
|
|
| |
This corrects an inconsistency where build targets were canonicalized
but clean targets were not. For example you could build ./foo but not
clean ./foo.
|
|
|
|
|
|
|
|
|
| |
Also check for Stat() failure in a few more places.
This way, ninja doesn't print two "ninja: error: " lines if stat() fails
during a build. It also makes it easier to keep the stat tests quiet.
Every caller of Stat() needs to explicitly log the error string if
that's desired.
|
|
|
|
|
|
|
|
| |
Ninja didn't support scoping rules through subninja and assumed
a unique rule name in the whole namespace. With this change, this
behavior is changed to allow scoping rules. Two rules can have the
same name if they belong to two different scopes. However, two
rules can NOT have the same name in the same scope.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes #730. This has always been broken, but due to #690 more paths are now
escaped (e.g. paths containing + characters, like file.c++). Also see
discussion in #689.
The approach is to give EdgeEnv an enum deciding on whether or not to escape
file names, and provide functions that evaluate depfile and rspfile with that
set that to kNoEscape. (depfile=$out.d doesn't make sense on edges with
multiple outputs.)
This should be relatively safe, as $in and $out can't be used on edges, only
on rules (#687).
|
| |
|
|
|
|
|
| |
Now, a 'build' block can override any special binding like 'command'
or 'description' if it needs to.
|
| |
|
|
|
|
|
| |
Prevent each node from being examined for cleaning multiple times, if it
is used in several other nodes
|
|\
| |
| |
| |
| | |
Conflicts:
src/clean.cc
|
| |
| |
| |
| | |
Also, modify Cleaner::CleanAll to use Edge::is_phony.
|
|/
|
|
| |
or "ninja -t clean -r <rule>"
|
| |
|
| |
|
|
|
|
|
|
| |
Move various data members to private section and provide accessors for them.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The two were always one-to-one anyway. I started adding accessors
to FileStat and then realized most users wanted them on Node and
that forwarding them through was silly.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a rule attribute "generator" which, if present, specifies
that this rule is used to re-invoke the generator program. Files built
using generator rules are treated specially in two ways: firstly,
they will not be rebuilt if the command line changes; and secondly,
they are not cleaned by default.
A command line flag "-g" is introduced for the clean tool, which
causes it to remove generator files.
Fixes issue #102.
|
|
|
|
| |
Signed-off-by: Thiago Farina <tfarina@chromium.org>
|
|
|
|
|
|
| |
This was a TODO in src/ninja_jumble.cc. Now this task is completed.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
|
|
|
|
|
|
| |
This is a TODO in src/ninja_jumble.cc
Signed-off-by: Thiago Farina <tfarina@chromium.org>
|
|
|
|
| |
Based on a patch from John Birtley.
|
|
|
|
|
|
| |
Clean all was not returning non-zero when an error occur (like when
failing to remove a directory). This patch fix the problem and add a test
for it.
|
|
|
|
| |
It also fix a bug about the count of removed file reported.
|
| |
|
|
It removes built files either by rule or target or everything.
|