summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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
| * | | | | Add NINJA_FALLTHROUGH macroStefan Becker2018-04-114-1/+24
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Borrow macro implementation from OpenSSL code. Add the macro after each fallthrough switch case to indicate our intention to the compiler. This silences GCC -Wimplicit-fallthrough warnings, which is implied by GCC 7.x -Wextra.
* | | | | Misc typo fixes by https://github.com/codespell-project/codespell/Mo Zhou2018-09-064-5/+5
|/ / / /
* | | | Revert "Fix stat when subdirectory is a file"Fredrik Medley2018-04-092-23/+1
| | | | | | | | | | | | | | | | | | | | This reverts commit 6c864097ef11da366fb4070e6ab9f34d6a293766 and fixes the broken Appveyor builds on GitHub.
* | | | rename a variableNico Weber2018-04-062-10/+10
| | | |
* | | | Improve location of error messages around identifiers.Nico Weber2018-04-063-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lexer::ReadIdent() now sets last_token_ before returning, like Lexer::ReadEvalString() does. So all "expected identifiers" and things that call ReadIdent (pool parser, rule parser, let parser, code parsing the rule name after a : in a build line) now point the "^ near here" at what was there instead of the previous last_token According to manifest_parser_perftest, this is perf-neutral.
* | | | make `-w dupbuild` default to `err`Nico Weber2018-04-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | You can still opt out of this by passing `-w dupbuild=warn`. But if you're getting this diagnostic, your build files are incorrect and you should ideally just fix them. This is step 3 on https://github.com/ninja-build/ninja/issues/931 I sent an RfC to ninja-build a few months ago; nobody objected.
* | | | Merge pull request #1348 from ngg/winunicodeNico Weber2018-04-057-26/+22
|\ \ \ \ | | | | | | | | | | Fix building on Windows in UNICODE mode
| * | | | Fix building on Windows in UNICODE modeGergely Nagy2017-10-317-26/+22
| |/ / /
* | | | Merge pull request #1223 from asankah/masterNico Weber2018-04-051-2/+60
|\ \ \ \ | | | | | | | | | | [compdb] Expand response files inline based on a switch.
| * | | | [compdb] Move declarations closer to their use.Asanka Herath2018-04-051-3/+3
| | | | |
| * | | | [compdb] Expand response files inline based on a switch.Asanka Herath2018-04-051-2/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | References to response files in a clang compile_commands.json file can be tricky to deal with when tooling expects all the command flags to be present in the 'command' field. This change introduces a '-x' option to '-t compdb' that will expand @rspfile style response file invocations inline. E.g. ```sh $ ninja -t compdb cc [ { "directory": "/src/foo", "command": "cc -foo -bar @foo.obj.rsp", "file": "foo.cc" } ] $ ninja -t compdb -x cc [ { "directory": "/src/foo", "command": "cc -foo -bar foo.cc", "file": "foo.cc" } ] ```
* | | | | Fix confusing smart console output from concurrent buildsNico Weber2018-04-052-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Developers tend to blame the last printed line when a build takes too long. Unfortunately, when building concurrently, the last printed line may have actually finished a long time ago. Under the current system, ninja does not update the status line to reflect what jobs are still running. This change makes ninja always print the oldest still running job instead. In other words, the likely build bottlenecks. Patch from David Zarzycki, originally uploaded at #1320.
* | | | | Merge pull request #1294 from bradking/plan-track-schedulingNico Weber2018-04-052-26/+40
|\ \ \ \ \ | | | | | | | | | | | | Track in Plan whether wanted edges have been scheduled
| * | | | | Track in Plan whether wanted edges have been scheduledBrad King2017-09-142-26/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the `want_` map to track for wanted edges whether they have been scheduled or not. This gives `ScheduleWork` a direct place to keep this information, making the logic more robust and easier to follow. It also future-proofs `ScheduleWork` to avoid repeat scheduling if it is called after an edge has been removed from `ready_` by `FindWork`.
* | | | | | make ninja build with -std=c++17Nico Weber2018-04-052-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ninja is supposed to be able to build as C++98 so it can run on old systems, but it should also be possible to optionally build it with newer dialects.
* | | | | | Merge pull request #1361 from ppluciennik/ppluciennik/flush_logNico Weber2018-04-051-0/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Flush changes into .ninja_log right away.
| * | | | | | Flush changes into .ninja_log right away.Pawel Pluciennik2017-11-241-0/+3
| | |_|/ / / | |/| | | |
* | | | | | Merge pull request #1365 from moroten/fix-disk-interface-tests-64-bit-timestampNico Weber2018-04-052-2/+43
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | Fix disk_interface_test.cc on Windows for 64-bit timestamp
| * | | | | Fix stat when subdirectory is a fileFredrik Medley2017-12-192-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that stat on Windows, both with and without cache, returns "missing file" when running stat on notadir/foo where notadir is a file.
| * | | | | Fix disk_interface_test.cc on Windows for 64-bit timestampFredrik Medley2017-12-192-1/+20
| |/ / / / | | | | | | | | | | | | | | | | | | | | subdir/subsubdir/.. seems to get the time of subdir/subsubdir on NTFS (Windows 7), not the time of subdir.
* | | | | Canonicalize targets of clean command.Frank Henigman2018-04-051-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This corrects an inconsistency where build targets were canonicalized but clean targets were not. For example you could build ./foo but not clean ./foo.
* | | | | Merge pull request #1386 from jmgao/exitNico Weber2018-04-051-14/+16
|\ \ \ \ \ | | | | | | | | | | | | Don't clean up after ourselves when exiting.
| * | | | | Don't clean up after ourselves when exiting.Josh Gao2018-02-191-14/+16
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | Destruction of NinjaMain can be an expensive operation when dealing with stupidly large ninjafiles. exit directly instead of returning out of real_main to avoid doing so.
* | | | | Merge pull request #1392 from alekseyshl/masterNico Weber2018-04-051-1/+2
|\ \ \ \ \ | | | | | | | | | | | | Fix build on Solaris.
| * | | | | Fix build on Solaris.alekseyshl2018-03-051-1/+2
| |/ / / / | | | | | | | | | | | | | | | Solaris also does not define struct stat's st_mtimensec field.
* | | | | Merge pull request #1373 from BillyDonahue/help_k_zeroNico Weber2018-04-051-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Update Usage to show "-k 0" behavior
| * | | | | Update Usage to show "-k 0" behaviorBilly Donahue2018-01-121-1/+1
| |/ / / / | | | | | | | | | | For "-k N", N==0 is interpreted as infinite. It's useful but not documented in the help, unfortunately.