summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* reduce doxygen outputEvan Martin2011-04-291-4/+4
|
* add doxygen-compatibile comments to most classesEvan Martin2011-04-2916-63/+116
|
* fix a signedness warningEvan Martin2011-04-291-1/+1
|
* Merged pull request #31 from polrop/generate-whole-graph.Evan Martin2011-04-293-8/+23
|\ | | | | The 'graph' tool now generates a graph based on all root nodes when called without any target. The build.ninja file is also adjusted so that we get the whole graph generated (including the doxygen part).
| * Generate the entire graph not only for the 'all' target.Nicolas Despres2011-04-261-1/+1
| | | | | | | | | | This way we can see the 'doxygen' target and also some object file we forgot to add as input of the link rule.
| * graph: Assume all root nodes if no target given.Nicolas Despres2011-04-262-7/+22
| | | | | | | | This way we can generate the complete graph.
* | Merged pull request #30 from polrop/more-tools.Evan Martin2011-04-297-3/+476
|\ \ | |/ | | adds the -C option and the following tools: targets, rules and clean
| * Add the 'clean' tool.Nicolas Despres2011-04-265-2/+308
| | | | | | | | It removes built files either by rule or target or everything.
| * Add the 'rules' tool.Nicolas Despres2011-04-262-1/+22
| | | | | | | | | | 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-264-1/+136
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Merged pull request #29 from polrop/minor-bug-fix.Evan Martin2011-04-286-24/+34
|\ \ | |/ | | Minor bug fix
| * 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.
* | include location of error in parse error messages in EvalEnv stringsAlexei Svitkine2011-04-266-8/+62
|/ | | | | E.g. when parsing "foo = ${bar", point at the correct location of the missing curly brace.
* 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.
* fix typo in comment in bootstrap.shEvan Martin2011-04-221-1/+1
|
* Merge branch 'doxygen'Evan Martin2011-04-223-5/+35
|\
| * doxygen_mainpage is not an implicit dependency.Nicolas Despres2011-04-211-1/+1
| | | | | | | | This way it does not appear in the $in variables.
| * Adjust DOXYGEN_MAINPAGE rule description.Nicolas Despres2011-04-181-1/+1
| | | | | | | | Now it prints its output file.
| * Touching README and co triggers rebuild of doxygen.Nicolas Despres2011-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before the main page was an order-only dependency of the doxygen target. Thus, modification in the README did not triggers rebuild of the doxygen target as it ought to be. We have several ways to fix this issue: 1) Make the '$builddir/doxygen_mainpage' target an explicit dependency: build $builddir/doxygen_mainpage: doxygen_mainpage \ README HACKING COPYING | $doxygen_mainpage_generator build doxygen: doxygen doxygen.config $builddir/doxygen_mainpage 2) Duplicate the explicit dependencies of the '$builddir/doxygen_mainpage' target as implicit dependencies of the 'doxygen' target and keep the '$builddir/doxygen_mainpage' target as an order-only dependency: build $builddir/doxygen_mainpage: doxygen_mainpage \ README HACKING COPYING | $doxygen_mainpage_generator build doxygen: doxygen doxygen.config \ | README HACKING COPYING \ || $builddir/doxygen_mainpage I chose the first option since the doxygen executable only cares about its first argument. But it would not be the case for all commands. So I think introducing "slice" support for the $in and $out variables would be great. This way I could rewrite the 'doxygen' rule this way: rule doxygen command = doxygen $in[0] description = DOXYGEN $in[0] Note that using variables to avoid duplication does not work since the three files are seen as a single one: doxygen_deps = README HACKING COPYING build $builddir/doxygen_mainpage: doxygen_mainpage \ $doxygen_deps | $doxygen_mainpage_generator build doxygen: doxygen doxygen.config \ | $doxygen_deps \ || $builddir/doxygen_mainpage Maybe Ninja's philosophy expects the generators to generate the second option.
| * Prefix error messages by script name.Nicolas Despres2011-04-181-1/+13
| | | | | | | | | | It helps when debugging compilation output to know who is speaking even if Ninja buffers command output contrary to make.
| * Make include_file() never returns 1.Nicolas Despres2011-04-181-2/+1
| | | | | | | | Otherwise the script is stopped because errexit option is set.
| * Call error() not fatal() if file is not found.Nicolas Despres2011-04-181-1/+6
| |
| * Add missing Apache license header.Nicolas Despres2011-04-181-0/+14
| | | | | | | | Reviewed by Evan Martin.
| * Fix gitignore line for Doxygen.Nicolas Despres2011-04-181-1/+1
| | | | | | | | Reviewed by Evan Martin.
* | 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
| |
* | actually link in util_testEvan Martin2011-04-221-1/+2
|/
* 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
| |
* | Add doxygen support.Nicolas Despres2011-04-164-0/+1328
| |
* | Merge branch 'master' of github.com:martine/ninjaEvan Martin2011-04-159-11/+47
|\ \ | |/ | | | | | | | | Conflicts: src/util.cc src/util.h
| * Merge branch 'errors-reporting' of https://github.com/polrop/ninjaEvan Martin2011-03-227-10/+48
| |\