summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add the 'rules' tool.Nicolas Despres2011-04-261-1/+18
| | | | | It can be useful in conjunction with the 'targets' tool for writing shell completion scripts and when debugging.
* Add the 'targets' tool.Nicolas Despres2011-04-263-1/+124
| | | | | | | | | | | This tool list targets by depth or by rule. It can be useful: - for shell completion script ; - to know what are the primary targets: ninja -t targets depth 1 ; - to know targets that are linked: ninja -t rule link ; - when debugging. It works by first listing the root nodes and then following the input nodes of their in edge.
* Add -C DIR option.Nicolas Despres2011-04-261-1/+12
| | | | | | Can be useful when calling ninja from a script or a code editor or in many other occasions. It costs nothing and does not bring more complexity, so I think we can afford it.
* graph: Report errors if a target does not exist.Nicolas Despres2011-04-261-3/+11
|
* Do not always require a target when a tool is run.Nicolas Despres2011-04-261-1/+9
| | | | Adjust tools options parser and documentation.
* Remove no longer used current working directory.Nicolas Despres2011-04-261-7/+0
| | | | | It has been introduced by 761a3c when ManifestParser::set_root() existed. It is no longer the case so we can save some time querying it now.
* Document.Nicolas Despres2011-04-261-0/+2
|
* Remove useless inclusion of stdio.h.Nicolas Despres2011-04-261-2/+0
|
* Use Error() to report error.Nicolas Despres2011-04-261-4/+5
| | | | | This way we get the error message prefixed by the program name. It helps while debugging.
* Prefix perror(3) messages with program name.Nicolas Despres2011-04-264-8/+8
| | | | | | It make it easier while debugging to know who is reporting the error: Ninja itself or one of the command called by Ninja during the build process or one of the generator which called Ninja.
* don't close null log filesEvan Martin2011-04-251-1/+2
|
* Close() and unlink() files in ways that make Windows happyPhilip Craig2011-04-231-0/+7
| | | | | This will make the build log compaction work on Windows. It will also make the tests no longer leave a temp log file around.
* [windows] disable smart terminal supportSergey Nenakhov2011-04-231-2/+10
|
* [windows] disable browse tool on Windows for nowSergey Nenakhov2011-04-231-0/+4
|
* [windows] use local getopt.hSergey Nenakhov2011-04-231-0/+4
|
* [windows] get processor count using Windows APISergey Nenakhov2011-04-231-0/+4
|
* [windows] extend hash_map.h for Windows hash_mapSergey Nenakhov2011-04-231-0/+9
|
* [windows] fix class/struct confusionSergey Nenakhov2011-04-231-1/+1
|
* [win] check in public-domain getopt implementationEvan Martin2011-04-232-0/+463
|
* use kMaxPathComponents in proper placeEvan Martin2011-04-231-1/+1
|
* optimize CanonicalizePathEvan Martin2011-04-232-35/+71
| | | | | | | | | Null build of Chrome: before I added extra calls to CanonicalizePath: 1.25s. with extra calls to CanonicalizePath: 1.35s. with new CanonicalizePath: 1.05s. And now CanonicalizePath isn't hot on profiles anymore.
* canonicalize paths on the command-line as they're usedEvan Martin2011-04-221-1/+6
| | | | | | | | | | | | | | I'm not entirely happy with my solution. I think Ninja should always use canonicalized paths internally, so we should canonicalize all paths as we receive them (from the command line and from build files). But there are other places where we pass paths around (like in all the tool commands) and I don't want to add manual calls to canonicalize in each. Perhaps the longer-term solution is to add some sort of GetNodeCanonicalize() to State and then make all of the functions that work with paths as strings (like Builder::AddTarget or RunBrowsePython) instead only accept a Node*.
* use util's CanonicalizePath in parsers as wellEvan Martin2011-04-222-14/+17
|
* handle foo//bar in CanonicalizePathEvan Martin2011-04-222-2/+9
|
* Merge branch 'term-fix' of https://github.com/SByer/ninjaEvan Martin2011-04-181-3/+5
|\
| * Fix an exception when terminal is narrow or set for unlimited widthScott Byer2011-04-071-3/+5
| |
* | Merge branch 'master' of github.com:martine/ninjaEvan Martin2011-04-158-11/+44
|\ \ | |/ | | | | | | | | Conflicts: src/util.cc src/util.h
| * Add missing CPP guards.Nicolas Despres2011-03-225-0/+25
| |
| * Prefix error messages with program name.Nicolas Despres2011-03-213-10/+23
| | | | | | | | | | | | It make it easier while debugging to know who is reporting the error: Ninja itself or one of the command called by Ninja during the build process or one of the generator which called Ninja.
| * src/inline.sh: fix typoIWATSUKI Hiroyuki2011-03-141-1/+1
| | | | | | | | I (Evan) got this wrong in the previous commit.
| * inline.sh: BSD / OS X fixesIWATSUKI Hiroyuki2011-03-131-1/+1
| |
* | Remove the declaration of DumpBacktrace.Thiago Farina2011-04-151-5/+0
| | | | | | | | This function was removed on 01880fb3a2a13f9071e9729c3a13752846828ed2.
* | Move CanonicalizePath into util.h so it can be shared by the other modules.Thiago Farina2011-04-156-89/+116
|/ | | | | | Also add util_test.cc and move the CanonicalizePathTest into there. Signed-off-by: Thiago Farina <tfarina@chromium.org>
* fix test that relied on pointer valuesEvan Martin2011-03-121-2/+7
|
* make bad build tests fail earlierEvan Martin2011-03-121-0/+1
|
* move the implementation of GraphViz to source fileThiago Farina2011-03-073-56/+79
|
* inline.sh: rewrite for better portabilityEvan Martin2011-03-071-5/+1
|
* handle variable expansion with upper-case charactersOrestis Agathokleous2011-03-072-1/+14
|
* use a shell script to inline browse.pyEvan Martin2011-03-073-15/+35
| | | | | | | | | Relying on the inline-assembly trick was cute but it didn't work on other platforms; relying on xxd will make us depend on xxd being available. Instead, inline browse.py into a header using a shell script. (Making this work required fixing multiple bugs in ninja...)
* files that have both implicit and explicit edges should be implicitEvan Martin2011-03-072-11/+27
| | | | | | | This is just deleting some code that was written in anticipation of staying memory-resident; when loading a depfile, we don't need to attempt to update existing entries in the dependency list, we just need to blindly add them.
* canonicalize paths loaded from depfilesEvan Martin2011-03-073-1/+151
| | | | | | | | | If a C file #includes "../foo.cc", then gcc will emit paths like "bar/../foo.cc" into the dependency file; canonicalize these when we load the file. Add a test module for testing the graph dirty recomputation directly, without all the build classes around it.
* more commentsEvan Martin2011-03-061-0/+2
|
* move VirtualFileSystem into test.*Evan Martin2011-03-063-36/+49
|
* move test support into test.*Evan Martin2011-03-064-18/+40
|
* don't rely on /proc for 'browse' modeEvan Martin2011-03-051-16/+38
| | | | | | | | | Instead, pass the script code via stdin. We end up with a zombie (the child process that passes the script code) because we can't ignore SIGCHLD in the parent (the Python code relies on being able to wait for children), but the zombie dies with the outer process. This probably could be avoided by double-forking or other approaches, but it doesn't seem worth the effort.
* factor browse out into its own fileEvan Martin2011-03-053-31/+81
|
* chdir into a temp dir before disk testsEvan Martin2011-03-051-0/+5
|
* limit output width to prevent line-wrappingEvan Martin2011-03-021-0/+12
|
* linux: simpler way to get number of processorsEvan Martin2011-03-011-10/+3
| | | | From a conversation with Anatol Pomazau <anatol@google.com>.
* print short name of command before dumping command stdout/stderrEvan Martin2011-03-011-6/+15
| | | | | | Previously we showed the full command line, but with this change we only show the full command line in verbose mode or when the command fails.