summaryrefslogtreecommitdiffstats
path: root/src/build.cc
Commit message (Collapse)AuthorAgeFilesLines
* fix windows build after depslogScott Graham2013-04-091-1/+1
|
* Merge branch 'dep-pipeless'Evan Martin2013-04-091-98/+181
|\ | | | | | | | | This merges a new mechanism for tracking "depfile" dependencies that is faster on all platforms but dramatically so on Windows.
| * add a straightforward deps log test, fix the other oneEvan Martin2013-04-091-6/+17
| | | | | | | | | | | | The first test I wrote was wrong; write a simpler test that exercises the "no failures" code paths, then fix the second test and the bugs it exposed.
| * Make deps=gcc without depfile an error.Nico Weber2013-04-091-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | When I first played with depslog, I accidentally removed the depfile attribute on my cc edges, which had the effect of ninja silently ignoring all depfiles. Instead, let ninja complain about edges that have deps set to gcc and depfile set to nothing. This is done at edge build time, instead of at mainfest load time, because adding this check to ParseEdge() regressed empty build time for target 'chrome' by 30ms. The check is only useful for generator authors, regular users should never see this.
| * add a test for the "deps out of date" caseEvan Martin2013-04-091-3/+5
| | | | | | | | It touched the various remaining XXXes in the code, hooray.
| * make it an error for now to have multiple outputs with depslogEvan Martin2013-04-081-1/+1
| |
| * only write deps log if edge is in deps log modeEvan Martin2013-04-081-11/+9
| |
| * use logged deps mtime in dirty calculationEvan Martin2013-04-081-1/+1
| | | | | | | | | | | | | | | | The idea here is that it's possible for a build to complete (writing its output) but then for Ninja to get interrupted before writing out the updated dependency information. In that case the mtime stored in the deps log (if any) will match the previous output, and we'll know we need to rebuild the output just to get the deps updated.
| * hook up depslog writing into build processEvan Martin2013-04-081-94/+122
| |
| * remove depfiles files as they're parsedEvan Martin2013-04-081-4/+4
| |
| * windows: use CLParser to extract deps during buildEvan Martin2013-04-081-1/+8
| |
| * refactor build-time deps-extractionEvan Martin2013-04-081-0/+50
| |
| * plumb DepsLog load through BuilderEvan Martin2013-04-081-2/+3
| |
| * pass command results via a structEvan Martin2013-04-081-45/+29
| | | | | | | | | | WaitForCommand now passes all command output via a struct. This will allow adding more output in a future change.
* | Make LinePrinter members private, add comments.Nico Weber2013-04-091-3/+3
| |
* | move printing of new lines into LinePrinter.Nico Weber2013-04-091-19/+5
| |
* | refactor; no intended functionality changeNico Weber2013-04-091-7/+13
| |
* | move single-line printing to new classNico Weber2013-04-091-88/+9
|/
* Merge pull request #521 from riannucci/ignore_duplicate_edges_in_shcedule_workEvan Martin2013-03-261-0/+6
|\ | | | | Fix duplicate edge Pool crash in the minimally invasive way
| * Fix duplicate edge Pool crash in the minimally invasive wayRobert Iannucci2013-03-181-0/+6
| |
* | Added %e to manual.asciidoc, fixed brace style.Avinash Baliga2013-03-111-2/+1
| |
* | Made %e purely a number.Avinash Baliga2013-03-041-1/+1
| |
* | NINJA_STATUS now takes %e for elapsed time.Avinash Baliga2013-03-041-0/+8
|/
* rearrange handling of builtin bindings to make rules simplerEvan Martin2012-12-291-18/+20
| | | | | Now, a 'build' block can override any special binding like 'command' or 'description' if it needs to.
* wrap some overlong linesEvan Martin2012-12-291-4/+8
|
* fix all "class" -> "struct"Evan Martin2012-12-291-2/+1
|
* NINJA_STATUS: add support of `%p` for percentageyannicklm2012-12-141-0/+8
|
* Remove unnecessary parameter from ShouldDelayEdgeRobert Iannucci2012-11-301-1/+1
|
* Make Edge->pool() a pointer like it should have beenRobert Iannucci2012-11-301-7/+7
|
* Dump pools with StateRobert Iannucci2012-11-091-1/+0
|
* and some basic implementationRobert Iannucci2012-11-091-10/+10
|
* stub out an api and de-constify PoolRobert Iannucci2012-11-091-2/+22
|
* build metrics: StartEdge and EndEdgeMaxim Kalaev2012-10-121-0/+2
| | | | | | | Total build time is also relevant. The costs of StartEdge and EndEdge turned out to be quite surprising. Especially if multiple targets are specified on edges. (I've tried declaring depfiles targets explicitly)
* Move DryRunCommandRunner into a unnamed namespace.Thiago Farina2012-10-021-24/+39
| | | | | | No functional change. Signed-off-by: Thiago Farina <tfarina@chromium.org>
* build with msvc2012Peter Kümmel2012-09-181-1/+1
|
* remove some code duplicationPeter Kümmel2012-09-181-2/+3
|
* Change rate measurement code.Nico Weber2012-09-141-15/+9
| | | | | | | | | | | For %o, remove a superfluous + 0.5: snprintf("%f") rounds already. Remove some unnecessary code. For %c, fix a TODO to add a sliding window and update after every completed edge. Else, with -j50 and several files that take 3s to compile each, this number would only update every 150s. Also give the number one decimal place so that this can measure steps slower than 1s.
* include termios for solarisAlex Caudill2012-09-071-0/+4
|
* move BuildLog to DependencyScanEvan Martin2012-09-041-5/+4
| | | | | | | The build log is needed in computing whether an edge is dirty, so I think it belongs here. (It's a bit weird that Builder needs to reach into it to record completed commands, maybe it will become cleaner with more thought.)
* remove a redundant arg to RecomputeOutputDirtyEvan Martin2012-09-021-5/+6
|
* split out dirty recomputation logic from Edge classEvan Martin2012-09-021-7/+8
| | | | | | | | | | Rather than passing States and DiskInterfaces through all the calls, put the necessary ambient information in a new DependencyScan object and move the code accordingly. Note: I didn't move the source location of the functions to preserve history, though this does result in a sort of weird order for the functions in graph.cc.
* use DiskInterface to create the build directoryEvan Martin2012-08-071-3/+3
| | | | | | | | | | Fixes issue #392 (didn't handle creating nested build dirs right). Moves MakeDir out of util.h; all code should go through DiskInterface to simplify testing. Moves ownership of the DiskInterface into the client of the Builder, which also allows removing some code that reached inside the object as well as a minor leak.
* Re-factor elide code and test it.Nicolas Despres2012-07-311-13/+2
|
* fix a warning and leak in windows-specific console output codeEvan Martin2012-07-271-2/+2
|
* Merge pull request #351 from syntheticpp/rateEvan Martin2012-07-271-1/+27
|\ | | | | print edges per second
| * print edges per secondPeter Kuemmel2012-07-151-1/+27
| | | | | | | | | | | | | | | | | | | | | | prints the rate of finished edges per second to the console, for instance with NINJA_STATUS="[%s/%t %o(%c)/s] ": [132/1922 16.1(14)/s] 16.1 is the average for all processed files (here 132 since start) 14 is the average of the last n files while n is the number specifies by -j (or its default)
* | windows: use WriteConsoleOutput instead of printf to avoid moving cursorScott Graham2012-07-191-6/+20
|/
* Efficiently check for emptinessPierre Schweitzer2012-07-141-1/+1
|
* Merge pull request #313 from wolfp/restat_missing_inputEvan Martin2012-07-031-7/+1
|\ | | | | Do not reset restat_mtime if an input is missing
| * Do not reset restat_mtime if an input is missing (issue #295)wolfp2012-06-271-7/+1
| |