summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Unset suports_color_ if SetConsoleMode fails on WIN32Mahmoud Al-Qudsi2018-12-101-1/+3
|
* Emit "FAILED: " in red if terminal supports ANSI color outputMahmoud Al-Qudsi2018-12-051-1/+4
|
* 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
| | | | | |
* | | | | | Merge pull request #1299 from pcc/fflushJan Niklas Hasse2018-10-301-0/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Flush stdout after printing "Cleaning..." message
| * | | | | | Flush stdout after printing "Cleaning..." messagePeter Collingbourne2017-07-051-0/+1
| | | | | | |
* | | | | | | Merge pull request #1481 from rickysarraf/fix-testcase-whoamiJan Niklas Hasse2018-10-291-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix testcase failure in docker environment
| * | | | | | | Replace `whoami` with a more generic commandRitesh Raj Sarraf2018-10-121-1/+1
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In our docker environment, the normal user does not have a name. This results in the `whoami` command to fail which expects a name to print Replace `whoami` with `id -u`, which print print the numeric id I have no name!@7427761b8f4c:/tmp/d$ whoami whoami: cannot find name for user ID 1000 I have no name!@7427761b8f4c:/tmp/d$ id uid=1000 gid=0(root) groups=0(root) Signed-off-by: Ritesh Raj Sarraf <ritesh.sarraf@collabora.com>
* | | | | | | Merge pull request #1485 from nomis/freebsd-11Jan Niklas Hasse2018-10-291-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix compilation on FreeBSD 11.2 (use st_mtim.tv_nsec)
| * | | | | | | Fix compilation on FreeBSD 11.2 (use st_mtim.tv_nsec)Simon Arlott2018-10-251-1/+1
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./src/disk_interface.cc: In member function 'virtual TimeStamp RealDiskInterface::Stat(const string&, std::__cxx11::string*) const': ./src/disk_interface.cc:216:51: error: 'struct stat' has no member named 'st_mtimensec'; did you mean 'st_mtim'? return (int64_t)st.st_mtime * 1000000000LL + st.st_mtimensec; ^~~~~~~~~~~~ st_mtim
* | | | | | | Merge pull request #1350 from korli/posix_spawn_errnoJan Niklas Hasse2018-10-291-27/+39
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | posix_spawn_* calls don't set errno, use the return value.
| * | | | | | posix_spawn_* calls don't set errno, use the return value.Jerome Duval2017-11-011-27/+39
| | | | | | |
* | | | | | | Merge pull request #1417 from stefanb2/topic-silence-gcc-fallthrough-warningsNico Weber2018-10-244-1/+24
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Silence GCC -Wimplicit-fallthrough warnings