summaryrefslogtreecommitdiffstats
path: root/doc/manual.asciidoc
Commit message (Collapse)AuthorAgeFilesLines
* Fix a link to Google+.Hiroyuki Iwatsuki2012-04-281-1/+1
|
* rearrange the manualEvan Martin2012-04-271-127/+208
| | | | | | | | | My goals were: - shorten the introductory text, hopefully quickly answering the "why?" question first. - put the information relevant to ninja users (e.g. people using CMake who don't especially care about ninja) next, at the beginning. - consolidate the "generating ninja files" text below.
* doc encoding supportEvan Martin2012-04-261-0/+4
|
* Merge pull request #278 from tychoish/masterEvan Martin2012-04-261-1/+3
|\ | | | | Minor Documentation Tweak
| * docs: clarifying that there can be only one command per ruletycho garen2012-04-241-1/+3
| |
* | Introduce NINJA_STATUS env var for customization.Nicolas Despres2012-04-241-0/+17
|/ | | | | | Some people may want to display different relevant information about the progress of the build. Also it can be usefull to debug jobs allocation.
* adjust rspfile docs to properly renderEvan Martin2012-03-061-16/+16
|
* Response filesunknown2012-02-091-0/+20
|
* Fix typo in manual.Nicolas Despres2011-12-301-1/+1
|
* move some docs to home pageEvan Martin2011-12-281-50/+10
|
* link to blog post in docsEvan Martin2011-12-281-5/+6
|
* rearrange manual to centralize quoting rulesEvan Martin2011-12-201-29/+46
|
* move build/install to READMEEvan Martin2011-12-061-17/+1
|
* remove reference to nonexistent fileEvan Martin2011-12-051-2/+0
|
* prettify manual for toolsEvan Martin2011-12-051-21/+31
|
* minor manual touchupsEvan Martin2011-12-051-13/+15
|
* Add a "commands" toolPeter Collingbourne2011-11-041-0/+4
| | | | | | | | | | | | | | | This tool performs a post-order traversal of the build graph, starting from a list of targets specified on the command line, and for each build statement encountered, prints the evaluated command line. Use cases include: - Generating input for a tool which needs to know the full command line for every command invoked during a build. Many static analysis and indexing tools require this information. - Generating a build script which does not depend on Ninja. For example, such a script could be used by Ninja to bootstrap itself.
* Implement restat rulesPeter Collingbourne2011-10-241-0/+6
| | | | | | | | | | | | | | | | | A restat rule is a rule which is capable of pruning the build tree depending on the timestamps of its outputs before and after a build. After a restat rule is rebuilt, Ninja will re-stat each output file to obtain its current timestamp. If the timestamp is unchanged from when Ninja initially stat'ed the file before starting the build, Ninja will mark that output file as clean, and recursively for each reverse dependency of the output file, recompute its dirty status. Ninja then stores the most recent timestamp of any input file in the build log entry associated with the output file. This timestamp will be treated by future invocations of Ninja as the output file's modification time instead of the output file's actual modification time for the purpose of deciding whether it is dirty (but not whether its reverse dependencies are dirty).
* Implement Make-style order-only dependenciesPeter Collingbourne2011-10-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the implementation of order-only dependencies differed between Make and Ninja in two important ways: 1) If the order-only dependency existed but was out of date, it would never be rebuilt, whereas Make would always rebuild out of date order-only dependencies. 2) If the order-only dependency did not exist, it would cause its reverse dependencies to always build, whereas Make would only rebuild a file if a non-order-only dependency was out of date. A key distinction between Ninja and Make as seen through the above two points was that in Ninja, order-only dependencies cared about whether the target as a file exists (so perhaps a better name for the old semantics would have been "missing-only dependencies"). These differences made it impossible to introduce an order-only dependency on an always out-of-date (i.e. missing) target without also causing the depender and its reverse dependencies to rebuild unnecessarily on every build. Build systems which must perform some action (such as logging the build start time, or printing a message) at the start of every build typically implement this by adding to every target an order-only dependency which performs this action, which would have forced an entire rebuild on every invocation of Ninja under the old semantics. This commit causes Ninja to conform to the Make-style behaviour.
* Make the command line interface for the clean tool consistentPeter Collingbourne2011-10-151-9/+8
| | | | | | Since we have started using command line flags for the clean tool, it is inconsistent to keep the "target" and "rule" prefixes. Replace them with a "-r" flag with the same semantics as "rule".
* Implement generator rulesPeter Collingbourne2011-10-151-10/+16
| | | | | | | | | | | | | 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.
* Consider missing phony targets with no dependencies out of datePeter Collingbourne2011-09-141-0/+6
| | | | | | | | | | | | | | | Commit 639c8f0 ("don't mark phony edges dirty if none of their inputs are dirty") modified the behaviour of the "phony" built-in rule. Previously, when the output file was missing, it was marked as dirty. After 639c8f0, it was always marked as clean unless one of the dependencies was dirty. The depfile mechanism uses the old behaviour of "phony" to rebuild an object file if any of the headers were missing. Restore the old "phony" behaviour only for the case where the build statement has no dependencies. This is slightly inconsistent, but I can't really see any other use case for an alias of nothing. Also, document this behaviour.
* Merge pull request #91 from pcc/reload-manifestEvan Martin2011-09-061-0/+4
|\ | | | | Support for rebuilding and reloading manifest files
| * Support for rebuilding and reloading manifest filesPeter Collingbourne2011-09-031-0/+4
| | | | | | | | | | | | This introduces support for rebuilding the top-level manifest file using a provided build statement, and reloading it before building the user-requested targets.
* | don't use "all" in the phony example, because we now have "default"Evan Martin2011-09-061-2/+2
| |
* | link to github in docsEvan Martin2011-09-061-0/+3
| |
* | update docs on other build system integration with recent newsEvan Martin2011-09-061-10/+9
|/
* Implement default target statementsPeter Collingbourne2011-08-311-6/+34
| | | | | | This introduces a new directive, the default target statement, which may be used to control the list of targets built by default (i.e. if no target is named on the command line).
* add docs on variable expansionEvan Martin2011-06-251-2/+34
|
* mention python module in the docsEvan Martin2011-06-251-9/+17
|
* expand $$ as $Evan Martin2011-05-271-1/+2
|
* switch to $ as the line continuation charEvan Martin2011-05-271-1/+1
| | | | | This means that backslashes are passed through without interpretation, allowing us to support Windows paths without worrying about escaping.
* update instructions on using gyp; mention cmakeEvan Martin2011-05-171-1/+8
|
* move various doc files out of top-level directoryEvan Martin2011-05-141-0/+506