summaryrefslogtreecommitdiffstats
path: root/doc/manual.asciidoc
Commit message (Collapse)AuthorAgeFilesLines
* v1.11.1v1.11.1Jan Niklas Hasse2022-08-301-1/+1
|
* v1.11.0v1.11.0Jan Niklas Hasse2022-05-151-6/+105
|\
| * Make the output of `ninja -t inputs` deterministicDavid 'Digit' Turner2022-03-211-2/+2
| | | | | | | | | | | | | | | | | | This sorts the output of `ninja -t inputs` to make it deterministic and remove duplicates, and adds a regression test in output_test.py + Ensure all inputs are listed, not only explicit ones. + Document the `inputs` tool in doc/manual.asciidoc.
| * Document the `msvc` toolDavid 'Digit' Turner2022-03-111-0/+31
| |
| * Merge pull request #1730 from naarcini/masterJan Niklas Hasse2022-02-021-0/+4
| |\ | | | | | | Add 'inputs' tool to print out all inputs for a set of targets
| | * Use correct version number for inputs toolJan Niklas Hasse2021-12-211-1/+1
| | |
| | * Add 'inputs' tool to print out all inputs for a set of targetsNicolas Arciniega2020-02-031-0/+4
| | |
| * | Merge pull request #1800 from colincross/validationsJan Niklas Hasse2021-12-211-0/+27
| |\ \ | | | | | | | | Add validation nodes to ninja
| | * | Add validation nodes to ninjaColin Cross2021-10-121-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common problem in the Android build is inserting rules that perform some sort of error checking that doesn't produce any artifacts needed by the build, for example static analysis tools. There are a few patterns currently used, both of which have downsides. The first is to have a rule that depends on all of the static analysis results. This ensures they run, but requires running static analysis over everything, and not just the active parts of the build graph. The second is to insert the static analysis rule into the build graph between the artifact producing rule and anything that depends on it, often copying the artifact as the output of the static analysis rule. This increases the critical path of the build, often reducing parallelism. In the case of copying the artifact, it also wastes disk space. This patch adds "validation nodes" to edges in Ninja. A build statement can specify validation nodes using "|@" in the edge inputs. The validation nodes are not used as an input to the edge (the edge can run before the validation node is ready), but are added to the initial nodes of the build graph whenever the edge is part of the build graph. The edge that outputs the validation node can depend on the output of the edge that is being validated if desired. Test: ninja_test Change-Id: Ife27086c50c1b257a26509373199664680b2b247
| * | | Merge pull request #2045 from Arthur-Milchior/rules_documentationJan Niklas Hasse2021-11-111-3/+3
| |\ \ \ | | | | | | | | | | NF: clarify documentation's part about rules description
| | * | | NF: clarify documentation's part about rules descriptionArthur Milchior2021-11-071-3/+3
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The word "eventually" was quite strange here and should probably removed. I suspect "potentially" was meant (which in French is "eventuellement", a standard false friend). In any way, after a quick look at the source/ninja message, I chose to even clarify this part of the doc, indicating that the `-d` option is required here.
| * | | Fix typoDimitris Apostolou2021-11-081-1/+1
| |/ /
| * | Set output mtime of phony edges to the latest inputsRichard Geary2021-08-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes issue #478. Observed: Real edges depending on a phony edge will not be marked as dirty or rebuilt if the phony's (real) inputs are updated. Expected: An edge should always be rebuilt if its inputs or transitive inputs are newer than the output's mtime. Change: Node::mtime_ was overloaded, 0 represented "does not exist". This change disambiguates it by adding Node::exists_. Then to fix the observed behaviour, Node::UpdatePhonyMtime was added to update the mtime if the node does not exist. Add tests BuildTest.PhonyUseCase# GraphTest.PhonyDepsMtimes. Unit tests will also test for always-dirty behaviour if a phony rule has no inputs.
| * | Merge pull request #1907 from aDotInTheVoid/patch-1Jan Niklas Hasse2021-03-051-2/+3
| |\ \ | | | | | | | | Clarify purpose for implicit dependencies
| | * | Clarify purpose for implicit dependenciesNixon Enraght-Moony2021-01-291-2/+3
| | | |
| * | | wincodepage: minimize to indicate UTF-8 or notBrad King2021-03-011-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ANSI code page identifier is more information than generator programs actually need. The encoding of `build.ninja` is always either UTF-8 or the system-wide ANSI code page. Reduce the output to provide no more information than the generator programs need. The Console code page can be obtained in other ways, so drop it.
| * | | Add tool to print code page information on WindowsBrad King2021-02-261-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 00459e2b (Use UTF-8 on Windows 10 Version 1903, fix #1195, 2021-02-17), `ninja` does not always expect `build.ninja` to be encoded in the system's ANSI code page. The expected encoding now depends on how `ninja` is built and the version of Windows on which it is running. Add a `-t wincodepage` tool that generators can use to ask `ninja` what encoding it expects. Issue: #1195
| * | | doc: fix format of 'missingdeps' documentationBrad King2021-02-261-2/+2
| | | | | | | | | | | | | | | | Group all the paragraphs together in the definition list entry.
| * | | Add manual entry about the missingdeps toolTomasz Ĺšniatowski2021-02-221-0/+15
| |/ /
* | | v1.10.2Jan Niklas Hasse2020-11-281-1/+1
| | |
* | | v1.10.1v1.10.1Jan Niklas Hasse2020-08-181-1/+1
| | |
* | | Merge branch 'master' into releaseJan Niklas Hasse2020-08-181-3/+3
|\ \ \ | |/ /
| * | Fix typosDimitris Apostolou2020-07-071-2/+2
| |/
| * manual: remove "manifest" reference from the manualBen Boeckel2020-01-291-1/+1
| | | | | | | | Nothing else describes what a "manifest" is in user-facing docs.
* | v1.10.0v1.10.0Jan Niklas Hasse2020-01-271-1/+1
| |
* | Merge branch 'master' into releaseJan Niklas Hasse2020-01-271-4/+171
|\ \ | |/
| * Merge pull request #1624 from bungeman/patch-1Jan Niklas Hasse2020-01-191-2/+2
| |\ | | | | | | Recommend MD over MMD for header dependencies.
| | * Recommend MD over MMD for header dependencies.bungeman2019-08-061-2/+2
| | | | | | | | | The MMD flag will silently omit includes found through pointy brackets or system include paths. This can lead to issues not only when system headers change, but any paths included through the isystem flag. Because the isystem flag implicitly turns off warnings as errors it has often come to be used as a "not my code" flag used with local third party dependencies which may be frequently updated or changed for debugging. As a result, it is far safer to default to MD (which includes all include dependencies) in this example.
| * | Add short doc for cleandead tool, fix #1716Jan Niklas Hasse2020-01-181-0/+3
| | |
| * | Add a short documentation for restat toolJan Niklas Hasse2019-12-231-0/+3
| |/
| * Merge pull request #1016 from moroten/docs-empty-rule-uptodateJan Niklas Hasse2019-07-091-0/+8
| |\ | | | | | | Describe how to make a phony rule always up to date
| | * Describe how to make a phony rule always up to dateFredrik Medley2017-08-161-0/+8
| | | | | | | | | | | | | | | | | | | | | A phony rule with no input is always out of date. Describe how to make a rule always up to date. Signed-off-by: Fredrik Medley <fredrik.medley@gmail.com>
| * | Resurrect the 'rules' tool.Nicolas Despres2019-05-091-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This tool is useful for writing shell completion script for tools expecting a rule name as argument. The tool was dropped by 34b46f28c. Fix #1024.
| * | Document example dyndep use casesBrad King2019-04-181-0/+83
| | | | | | | | | | | | | | | | | | Show a simple example of Fortran module dependencies (this use case motivated the entire dyndep feature). Also show an example of tarball extraction, a case that few other buildsystems can handle cleanly.
| * | Document `dyndep` binding behavior and the dyndep file formatBrad King2019-04-181-0/+67
| | |
| * | Update link to premakeddrone2019-04-101-1/+1
| | |
| * | Fix Fuchsia typoJan Niklas Hasse2019-02-051-1/+1
| | |
* | | v1.9.0v1.9.0Jan Niklas Hasse2019-01-301-1/+1
| | |
* | | Merge branch 'master' into releaseJan Niklas Hasse2019-01-301-6/+6
|\ \ \ | |/ /
| * | Remove dead Chromium link, fix #1263Jan Niklas Hasse2018-11-251-2/+1
| | |
| * | Merge pull request #1484 from smeenai/gyp-to-gnJan Niklas Hasse2018-11-251-3/+3
| |\ \ | | | | | | | | Change gyp to gn
| | * | Change gyp to gnShoaib Meenai2018-10-191-3/+3
| | | | | | | | | | | | | | | | | | | | Chrome has switched from gyp to gn, and Fuschia also uses it now. Note that the "Chromium Ninja documentation" link is dead, but I'm not sure what to replace it with. The closest I've found is https://chromium.googlesource.com/experimental/chromium/src/+/refs/wip/bajones/webvr/docs/ninja_build.md, but I'm not sure that's the original intended target.
| * | | Merge pull request #1474 from mathstuf/win32-invalid-parameter-helpJan Niklas Hasse2018-11-161-1/+2
| |\ \ \ | | | | | | | | | | Win32 invalid parameter help
| | * | | manual: mention the "invalid parameter" caseBen Boeckel2018-11-091-1/+2
| | |/ / | | | | | | | | | | | | | | | | This happens often enough and the error message is quite unhelpful. Mention this error explicitly in the documentation.
| * | | Fix rendering of code block, fix #955Jan Niklas Hasse2018-11-141-1/+1
| |/ /
* | | v1.8.2v1.8.2Nico Weber2017-09-111-1/+1
|\ \ \ | |/ /
* | | v1.8.1v1.8.1Nico Weber2017-09-061-1/+1
|\ \ \ | |/ /
* | | v1.8.0v1.8.0Nico Weber2017-09-041-1/+6
|\ \ \ | |/ /
| * | Add _Available since Ninja 1.4._ to `deps` and `recompact`Nikolaus Wittenstein2017-08-301-2/+2
| | |
| * | Add `deps` and `recompact` tools to manualNikolaus Wittenstein2017-08-291-0/+5
| |/ | | | | The `deps` tool in particular is very useful to know about.