summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Factor out edge marking logic from Plan::AddSubTargetBrad King2019-04-182-3/+9
| | | | | Move the logic to mark edges as wanted over to a Plan::EdgeWanted method so it can be re-used elsewhere later.
* Teach FakeCommandRunner to support multiple active commandsBrad King2019-04-181-21/+47
| | | | | | | | Replace our single active edge pointer with a vector and add a parameter that tests can set to limit the number of concurrent edges. Set the default to 1 to preserve the current behavior. Specific tests will be able to override it later to simulate concurrent builds.
* Allow EdgeFinished and NodeFinished to fail with errorsBrad King2019-04-183-37/+75
| | | | | | | Add an 'err' string argument and return a boolean for success. Update call sites to pass an 'err' string argument and check the return value. This will be useful later for adding logic to these methods that may fail.
* Assert precondition in BuildStatus::BuildEdgeStartedBrad King2019-04-181-0/+1
| | | | | This method should be called only with edges that have not already been started.
* Factor out a base class of ManifestParserBrad King2019-04-184-53/+104
| | | | | | Create a Parser base class that holds parser functionality not specific to the build manifest file format. This will allow it to be re-used for other parsers later.
* ManifestParser: Fix typo {expectd => expected}Brad King2019-04-181-1/+1
|
* Remove trailing whitespace from all filesJan Niklas Hasse2019-04-173-4/+4
|
* make inline.sh more portablegoshhhy2019-04-161-1/+1
|
* Feature/add term env dumb to win32 (#1550)jhuels2019-04-161-5/+9
| | | Add reading of TERM variable for win32 dumb terminals
* Take CPU set limitations into account when calculating processor countJan Niklas Hasse2019-02-261-0/+9
| | | | Fixes #1278.
* mark this 1.9.0.gitJan Niklas Hasse2019-01-301-1/+1
|
* Restore depfile toleration of multiple output paths on distinct linesBrad King2018-11-1911-17/+120
| | | | | | | | | | | | | | | | Prior to introduction of depfile parser handling of multiple rules, ninja silently accepted a depfile of the form: out: in1 in2 in3 other: otherIn1 otherIn2 otherIn3 and incorrectly treated `other` and `otherIn*` as additional inputs to `out`. Now we prefer to reject this just as we already do for a depfile specifying multiple outputs on one line. However, this can break existing cases where such a depfile was silently tolerated. Add a `-w depfilemulti={err,warn}` option to control this behavior, and make it just a warning by default.
* Fix depfile parser handling of multiple rulesBrad King2018-11-193-33/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we handle Makefile rules of the form: out: in1 in2 in3 and the form: out: in1 \ in2 \ in3 Teach the depfile parser to handle the additional form: out: in1 out: in2 out: in3 This is also valid Makefile syntax and is the depfile format generated by the Intel Compiler for Windows. Note that the `gcc -MP` option adds empty phony rules to the generated Makefile fragment: out: in1 in2 in3 in1: in2: in3: Previously we tolerated these because they were treated as inputs, which was accidentally correct. Instead we must now tolerate these by ignoring targets for which no dependencies are specified.
* Fix depfile parser test case line continuationBrad King2018-11-191-4/+4
| | | | | | | Escape newlines for line continuation in the SpecialChars test case. Otherwise the test does not cover valid Makefile syntax. The missing line continuation was tolerated by our parser but is never (not) produced by a real compiler.
* Re-arrange depfile parser token processing logicBrad King2018-11-192-22/+20
| | | | | Re-arrange the existing logic to support later addition of post-token code even for empty tokens.
* Re-generate depfile parser with re2cc 1.0.1Brad King2018-11-191-3/+2
|
* Fit --help output into 80 columns and move verbose up, fix #1500Jan Niklas Hasse2018-11-161-3/+3
|
* Merge pull request #1474 from mathstuf/win32-invalid-parameter-helpJan Niklas Hasse2018-11-163-3/+11
|\ | | | | Win32 invalid parameter help
| * subprocess-win32: add hint on ERROR_INVALID_PARAMETERBen Boeckel2018-11-091-0/+4
| | | | | | | | | | This is generally associated with the command line being too long. Give a hint to this case in the error message.
| * Win32Fatal: support a "hint" for the errorBen Boeckel2018-11-092-3/+7
| | | | | | | | | | The callsite might have extra context which is helpful for interpreting the error message.
* | Merge pull request #1462 from GoaLitiuM/win10colorJan Niklas Hasse2018-11-161-0/+12
|\ \ | | | | | | Enable ANSI escape sequences on Windows 10 terminals
| * | Enable ANSI escape sequences on Windows 10 terminalsGoaLitiuM2018-11-141-0/+12
| | |
* | | Merge pull request #1439 from Lekensteyn/threaded-browse-pyNico Weber2018-11-151-1/+7
|\ \ \ | | | | | | | | browse.py: fix delay with multiple connections
| * | | browse.py: fix delay with multiple connectionsPeter Wu2018-10-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Firefox opens two TCP connections and sends a request over the second connection, it is not processed until the first one is closed. Use a threaded server to solve this issue. Tested with Python 2.7.15 and 3.6.5. (Also tested with 2.6, but that failed due to lack of argparse.) Link: https://bugs.python.org/issue31639
* | | | Merge pull request #1196 from danw/ReadFile_optJan Niklas Hasse2018-11-141-1/+11
|\ \ \ \ | | | | | | | | | | Optimize ReadFile allocations
| * | | | Optimize ReadFile allocationsDan Willemsen2016-11-071-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of continuously reallocating the output string, call reserve() up front to enlarge the string's buffer. Also use feof() instead of an empty read to detect the end of the file. This saves a syscall on <64kb files, which is about 5% (200ns) of the time to read a file on my machine. For our larger build.ninja files (~550MB), this saves about 500ms, which is more than half the time spent in this function. (Measured by adding METRICS_RECORD to this function during manifest_parser_perftest) For the standard manifest_parser_perftest, this only saves ~20ms out of ~600ms for a full run.
* | | | | Improve error message when Python wasn't found for the browse toolJan Niklas Hasse2018-11-141-1/+6
| | | | | | | | | | | | | | | | | | | | See #1306.
* | | | | Explain why there's no browse tool, fix #1478Jan Niklas Hasse2018-11-141-3/+6
| | | | |
* | | | | Make -j 0 run unlimited parallel builds, fix #1309Martell Malone2018-11-141-3/+6
| |_|/ / |/| | |
* | | | Merge pull request #1264 from gahr/DirName-compile-timeJan Niklas Hasse2018-11-131-3/+4
|\ \ \ \ | | | | | | | | | | DirName's separators and their length are known at compile time
| * | | | DirName's separators and their length are known at compile timePietro Cerutti2017-04-111-3/+4
| | | | |
* | | | | Add --verbose as an alternative spelling for -v, fix #1310Jan Niklas Hasse2018-11-131-1/+2
| | | | |
* | | | | Add unit test for #1491Jan Niklas Hasse2018-11-131-0/+2
| | | | |
* | | | | Merge pull request #1491 from mathstuf/elision-off-by-nJan Niklas Hasse2018-11-131-1/+1
|\ \ \ \ \ | | | | | | | | | | | | util: don't add ellipses width when deciding if they're necessary
| * | | | | util: don't add ellipses width when deciding if they're necessaryBen Boeckel2018-11-091-1/+1
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | If the string fits, just use it. If we need the ellipses, *then* we need to compute the width based on that.
* | | | | Allow disabling of escape code stripping, fix #1475Jan Niklas Hasse2018-11-132-1/+4
|/ / / / | | | | | | | | | | | | | | | | Don't strip colors when CLICOLOR_FORCE is set to a non-zero value. This environment variable is also used by CMake's Make back-end.
* | | | Verify GetFullPathName return valueFredrik Medley2018-11-083-14/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | GetFullPathName previously failed silently on long path names resulting in uninitialized path result. Signed-off-by: Fredrik Medley <fredrik.medley@autoliv.com>
* | | | Merge pull request #1488 from maciej-pawlowski-opera/issue-1227-2Jan Niklas Hasse2018-11-074-510/+431
|\ \ \ \ | | | | | | | | | | Fix parsing some special chars in depfiles (take 2)
| * | | | Fix parsing some special chars in depfilesMaciej Pawlowski2018-11-073-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows paths with "[", "]" and "%" to appear in depfiles. Previously, only "[" would be handled properly. Fixes #1227.
| * | | | Regenerate depfile_parser.cc and lexer.cc with newer re2cMaciej Pawlowski2018-11-072-505/+423
| | | | |
* | | | | Fix older VS compatibility issues and PDB files generation issue. (#1435)ikifof2018-11-072-0/+6
|/ / / / | | | | | | | | Fixes #1411.
* | | | Merge pull request #1473 from zdave/query-term-stdoutJan Niklas Hasse2018-11-051-1/+1
|\ \ \ \ | | | | | | | | | | Query terminal width from STDOUT_FILENO
| * | | | Query terminal width from STDOUT_FILENODavid Emett2018-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Rather than 0 (stdin). So it will work even if ninja's stdin isn't connected to the terminal for whatever reason.
* | | | | Exclude broken DiskInterfaceTests from MSVC, see #1423Jan Niklas Hasse2018-11-051-0/+2
| | | | |
* | | | | Merge pull request #1326 from 0-wiz-0/masterJan Niklas Hasse2018-11-051-0/+1
|\ \ \ \ \ | | | | | | | | | | | | Two fixes for NetBSD
| * | | | | Include missing header for pselect().Thomas Klausner2017-09-101-0/+1
| | | | | |
* | | | | | Merge pull request #1457 from V-for-Vasili/AIX-supportJan Niklas Hasse2018-11-051-0/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Port to AIX platform
| * | | | | | Port to AIX platform.Vasili Skurydzin2018-08-021-0/+2
| | |/ / / / | |/| | | | | | | | | | | | | | | | Taking care of printf format specifiers and large files using compiler macros in configure.py
* | | | | | Revert "Fix confusing smart console output from concurrent builds"Jan Niklas Hasse2018-11-052-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 52c1d0c8f8545231581c4d51cb0a85f50564c415. Fixes #1418.
* | | | | | Do not always strip colored output in verbose mode, fix #1214Jan Niklas Hasse2018-11-053-1/+7
| | | | | |