Evan Martin [Thu, 5 Apr 2012 00:21:08 +0000 (17:21 -0700)]
Merge pull request #260 from sgraham/rspfile_syntax
add rspfile and rspfile_content to ninja_syntax
Evan Martin [Thu, 5 Apr 2012 00:14:30 +0000 (17:14 -0700)]
Merge pull request #259 from usovalx/distcc_depfile_fix
Explicitly specify target name for gcc depfiles
Evan Martin [Thu, 5 Apr 2012 00:13:33 +0000 (17:13 -0700)]
Merge pull request #256 from iwadon/fix-sign-compare
fix warning: "comparison between signed and unsigned integer expressions"
Evan Martin [Thu, 5 Apr 2012 00:13:19 +0000 (17:13 -0700)]
Merge pull request #257 from PetrWolf/
53598255
Add NOMINMAX macro to fix a compilation error on Win32
Scott Graham [Tue, 27 Mar 2012 00:36:43 +0000 (17:36 -0700)]
add rspfile and rspfile_content to ninja_syntax
Oleksandr Usov [Fri, 23 Mar 2012 15:40:04 +0000 (15:40 +0000)]
Explicitly specify target name for gcc depfiles
Evan Martin [Sun, 18 Mar 2012 23:49:31 +0000 (16:49 -0700)]
Merge pull request #251 from polrop/depfile-parser-accept-tilde
Depfile parser accept tilde.
Hiroyuki Iwatsuki [Fri, 16 Mar 2012 13:41:39 +0000 (22:41 +0900)]
fix warning: "comparison between signed and unsigned integer expressions"
Petr Wolf [Fri, 16 Mar 2012 12:59:28 +0000 (13:59 +0100)]
Add NOMINMAX macro to fix a compilation error on Win32
Nicolas Despres [Wed, 14 Mar 2012 19:33:32 +0000 (20:33 +0100)]
Depfile parser accept tilde.
Evan Martin [Tue, 13 Mar 2012 23:37:53 +0000 (16:37 -0700)]
Merge pull request #250 from qhuo/SetCloseOnExec-for-Windows
Add a Windows version of SetCloseOnExec()
Evan Martin [Tue, 13 Mar 2012 23:31:39 +0000 (16:31 -0700)]
Merge pull request #249 from qhuo/StatBadPath-Win7
Fix StatBadPath for Windows 7
Qingning Huo [Tue, 13 Mar 2012 23:28:44 +0000 (23:28 +0000)]
Add a Windows version of SetCloseOnExec()
Qingning Huo [Tue, 13 Mar 2012 23:20:12 +0000 (23:20 +0000)]
Fix StatBadPath for Windows 7
The StatBadPath test expects both Windows and Linux to reject a
path name with 512 characters. However, it seems that such path
is actually acceptable to Windows 7. The change constructs a
different path name that is invalid on Windows.
Evan Martin [Tue, 13 Mar 2012 22:12:57 +0000 (15:12 -0700)]
Merge pull request #246 from HeisSpiter/master
Fix resources leaks
Pierre Schweitzer [Tue, 13 Mar 2012 10:25:42 +0000 (11:25 +0100)]
Fix resources leaks
Evan Martin [Tue, 13 Mar 2012 06:28:18 +0000 (23:28 -0700)]
Merge pull request #245 from usovalx/unify_depfile_targets
Issue #241 - handle depfiles generated by older versions of GCC
Oleksandr Usov [Mon, 12 Mar 2012 19:14:07 +0000 (19:14 +0000)]
Issue #241 - handle depfiles generated by older versions of GCC
Older versions of GCC would produce broken depfiles when -MT or -MQ is used
gcc43 -MT foo.o -MMD -MF foo.o.d -o foo.o -c foo.c
will result in the following depfile
foo.o foo.o: <dependencies>
Parse multiple outputs unifying duplicates and correctly report errors if
they are different.
Evan Martin [Thu, 8 Mar 2012 07:04:02 +0000 (23:04 -0800)]
Merge pull request #235 from fischman/ppoll
pselect->ppoll on linux to raise the process limit roof
Evan Martin [Thu, 8 Mar 2012 07:03:50 +0000 (23:03 -0800)]
Merge pull request #239 from pcc/enotdir
Treat paths of the form "existing-file/something" as non-existent
Peter Collingbourne [Mon, 5 Mar 2012 01:45:04 +0000 (01:45 +0000)]
Treat paths of the form "existing-file/something" as non-existent
Some people like to construct phony target names by appending a
"/something" suffix to an existing target "foo". But if "foo" is an
existing file, stat will report ENOTDIR for this path, causing ninja
to spew errors. Fix this by treating ENOTDIR in the same way as we
do ENOENT -- as a non-existent path.
Evan Martin [Tue, 6 Mar 2012 21:42:47 +0000 (13:42 -0800)]
drop rtti via -fno-rtti; we don't use it
Evan Martin [Tue, 6 Mar 2012 18:19:12 +0000 (10:19 -0800)]
make urtle fit on 24-line terminal
Evan Martin [Tue, 6 Mar 2012 18:15:19 +0000 (10:15 -0800)]
adjust rspfile docs to properly render
Evan Martin [Mon, 5 Mar 2012 16:03:11 +0000 (08:03 -0800)]
Merge pull request #238 from pcc/outputs-ready-no-inputs
Mark a phony target with no inputs as outputs-ready
Evan Martin [Mon, 5 Mar 2012 16:02:05 +0000 (08:02 -0800)]
Merge pull request #237 from pcc/ninja-clean-hint
Give a useful hint if the user runs "ninja clean" and there is no "clean...
Peter Collingbourne [Mon, 5 Mar 2012 01:35:44 +0000 (01:35 +0000)]
Mark a phony target with no inputs as outputs-ready
Even if such a target is dirty (i.e. the file does not exist), it
has nothing to do, which makes it safe to mark as outputs-ready.
Without this change, ninja will print no output when rebuilding the
target (or an order-only dependency thereof), instead of reporting
it has "no work to do".
Peter Collingbourne [Mon, 5 Mar 2012 01:22:21 +0000 (01:22 +0000)]
Give a useful hint if the user runs "ninja clean" and there is no "clean" target
Ami Fischman [Sun, 4 Mar 2012 03:58:09 +0000 (19:58 -0800)]
addressed pcc comments
Ami Fischman [Sun, 4 Mar 2012 01:42:39 +0000 (17:42 -0800)]
pselect->ppoll on linux to raise the process limit roof
Evan Martin [Fri, 2 Mar 2012 05:22:18 +0000 (21:22 -0800)]
Merge pull request #231 from pcc/exit-cleanup-modified
Be more selective about deleting output files when interrupted
Evan Martin [Thu, 1 Mar 2012 20:07:40 +0000 (12:07 -0800)]
add an "urtle" tool
Peter Collingbourne [Tue, 28 Feb 2012 02:14:03 +0000 (02:14 +0000)]
Be more selective about deleting output files when interrupted
Specifically, only delete if the file was modified or if the rule uses
a depfile.
Fixes issue #226.
Evan Martin [Tue, 28 Feb 2012 16:07:32 +0000 (08:07 -0800)]
Merge pull request #229 from sgraham/overprint
[win32] Overprint the previous line if we're attached to a console
Scott Graham [Mon, 27 Feb 2012 03:13:12 +0000 (19:13 -0800)]
[win32] Overprint the previous line if we're attached to a console
Evan Martin [Thu, 23 Feb 2012 00:21:46 +0000 (16:21 -0800)]
fix some public/private errors in rspfile patch
Evan Martin [Thu, 23 Feb 2012 00:19:39 +0000 (16:19 -0800)]
Merge pull request #217 from PetrWolf/master
Response files
Evan Martin [Wed, 22 Feb 2012 23:52:45 +0000 (15:52 -0800)]
Merge pull request #218 from tfarina/fix-graph-todo
Fix the TODO in graph.h.
Evan Martin [Wed, 22 Feb 2012 20:59:14 +0000 (12:59 -0800)]
Merge pull request #223 from pcc/restat-clean-manifest
Do not reload the manifest if a restat cleans it while being rebuilt
Peter Collingbourne [Mon, 20 Feb 2012 21:20:45 +0000 (21:20 +0000)]
Do not reload the manifest if a restat cleans it while being rebuilt
Evan Martin [Mon, 20 Feb 2012 04:01:15 +0000 (20:01 -0800)]
Merge pull request #222 from polrop/test-bug-fix-
62e9139740
Add a test for empty path in CanonicalizePath().
Nicolas Despres [Sun, 5 Feb 2012 12:28:56 +0000 (13:28 +0100)]
Add a test for empty path in CanonicalizePath().
This test covers bug fix introduced by
62e9139740. However,
reverting this patch does not trigger a test failure. Maybe, I am
not testing on the right platform (Linux). Anyway, in all cases
I think this test deserves to be added.
Thiago Farina [Thu, 16 Feb 2012 11:06:14 +0000 (09:06 -0200)]
fix depfile_ access
Thiago Farina [Sun, 12 Feb 2012 18:25:38 +0000 (16:25 -0200)]
Fix the TODO in graph.h.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
PetrWolf [Tue, 14 Feb 2012 17:33:04 +0000 (18:33 +0100)]
Merge branch 'master' of github.com:PetrWolf/ninja
PetrWolf [Tue, 14 Feb 2012 17:30:14 +0000 (18:30 +0100)]
Fix tabs, typos
Evan Martin [Tue, 14 Feb 2012 00:55:16 +0000 (16:55 -0800)]
Merge pull request #176 from pcc/exit-cleanup
Implement cleanup-on-interrupt
Evan Martin [Tue, 14 Feb 2012 00:18:46 +0000 (16:18 -0800)]
graphviz: don't draw edges multiple times
From a patch from Ian Godin <iangodin@gmail.com>.
Ian Godin [Sat, 11 Feb 2012 17:20:42 +0000 (09:20 -0800)]
Made graph horizontal (better for filenames)
Petr Wolf [Fri, 10 Feb 2012 09:31:25 +0000 (10:31 +0100)]
Add comments, remove unwanted whitespace change
unknown [Thu, 9 Feb 2012 21:23:35 +0000 (22:23 +0100)]
Response files
Clint Moore [Tue, 7 Feb 2012 10:00:20 +0000 (02:00 -0800)]
Fixes the build on OpenIndiana
Evan Martin [Sat, 4 Feb 2012 22:23:31 +0000 (14:23 -0800)]
Merge pull request #214 from qhuo/onpipeready-fix
Avoid using undefined value in Subprocess::OnPipeReady()
Evan Martin [Sat, 4 Feb 2012 22:21:15 +0000 (14:21 -0800)]
Merge pull request #213 from syntheticpp/evaluate-only-once
Evaluate command only once
Evan Martin [Sat, 4 Feb 2012 22:14:04 +0000 (14:14 -0800)]
don't crash when CanonicalizePath removes all path components
From a patch from Peter Kuemmel <syntheticpp@gmx.net>.
Peter Collingbourne [Thu, 1 Dec 2011 20:55:18 +0000 (20:55 +0000)]
If a command fails, wait for all running commands to terminate before we do
Previously, if a command fails, the fate of the other child processes
running in parallel was inadequately controlled. On POSIX platforms,
the processes were orphaned. Normally they would run to completion,
but were liable to being killed by a SIGPIPE. On Windows, the child
processes would terminate with the parent. The cleanup-on-interrupt
patch caused the SubprocessSet and Builder destructors to clean
up after themselves by killing any running child processes and
deleting their output files, making the behaviour more predictable
and consistent across platforms.
If the build is interrupted by the user, this is correct behaviour.
But in the case where the build is stopped by a failed command, this
would be inconsistent with user expectations. In the latter case,
we now let any remaining child processes run to completion before
leaving the main loop in Builder::Build.
Peter Collingbourne [Sun, 13 Nov 2011 05:49:16 +0000 (05:49 +0000)]
Implement cleanup-on-interrupt
This causes us to clean up by deleting any output files belonging
to currently-running commands before we quit if we are interrupted
(either by Ctrl-C or by a command failing).
Fixes issue #110.
Peter Collingbourne [Fri, 9 Dec 2011 15:26:38 +0000 (17:26 +0200)]
Clean up how the build line is managed at the end of the build
Qingning Huo [Sat, 4 Feb 2012 20:30:01 +0000 (20:30 +0000)]
Avoid using undefined value in Subprocess::OnPipeReady()
Peter Kuemmel [Sat, 4 Feb 2012 20:04:34 +0000 (21:04 +0100)]
compute command twice only in case of an error
Evan Martin [Sat, 4 Feb 2012 05:24:11 +0000 (21:24 -0800)]
Merge pull request #211 from okuoku/msvc-build-c4819
windows: Disable warning C4819
okuoku [Fri, 3 Feb 2012 13:26:58 +0000 (22:26 +0900)]
windows: Disable warning C4819
warning C4819: The file contains a character that cannot be represented
in the current code page.
Evan Martin [Sun, 29 Jan 2012 16:48:13 +0000 (08:48 -0800)]
Merge pull request #199 from qhuo/create-process
Mark CreateProcess "program not found" failure as non-fatal
Evan Martin [Sun, 29 Jan 2012 16:46:52 +0000 (08:46 -0800)]
Merge pull request #210 from syntheticpp/colon-escape
add colon escaping
Peter Kuemmel [Sun, 29 Jan 2012 13:26:24 +0000 (14:26 +0100)]
parse $:
'$:' is a valid string now, it expands to ':'
update error messages and show a hint when something went wrong.
Peter Kuemmel [Sun, 29 Jan 2012 11:28:52 +0000 (12:28 +0100)]
add colon escaping
Needed for Windows drive names.
For instance configure with gtest:
python configure.py --with-gtest=c$:\gtest-1.6.0
Evan Martin [Sun, 29 Jan 2012 00:39:34 +0000 (16:39 -0800)]
Merge pull request #209 from scottfranklin/python3_compat
Maintain python3 compatibility for ninja_syntax.py
Scott Franklin [Sat, 28 Jan 2012 20:15:47 +0000 (15:15 -0500)]
Explicitly turn input/output lists into list objects.
Python 3 does not support map.append/extend.
Evan Martin [Thu, 26 Jan 2012 05:47:35 +0000 (21:47 -0800)]
Merge pull request #208 from okuoku/cygwin-build
Fix cygwin build by including stdio.h here
Qingning Huo [Wed, 25 Jan 2012 21:28:57 +0000 (21:28 +0000)]
Add a test, NoSuchCommand.
okuoku [Wed, 25 Jan 2012 16:31:03 +0000 (01:31 +0900)]
Fix cygwin build by including stdio.h here
Evan Martin [Tue, 24 Jan 2012 23:56:15 +0000 (15:56 -0800)]
rearrange query/browse output to be more sensible
Evan Martin [Mon, 23 Jan 2012 22:19:42 +0000 (14:19 -0800)]
Merge pull request #204 from syntheticpp/parser-crash
Fix parser crash
Evan Martin [Mon, 23 Jan 2012 22:17:20 +0000 (14:17 -0800)]
Merge pull request #203 from syntheticpp/win-disk-interface
Win disk interface
Peter Kuemmel [Mon, 23 Jan 2012 21:24:55 +0000 (22:24 +0100)]
check access to first element of string: string could be empty
Peter Kuemmel [Mon, 23 Jan 2012 20:43:50 +0000 (21:43 +0100)]
fix search&replace error on struct name
Peter Kuemmel [Mon, 23 Jan 2012 20:42:50 +0000 (21:42 +0100)]
no error code about too long file names on Windows
Evan Martin [Mon, 23 Jan 2012 00:46:53 +0000 (16:46 -0800)]
Merge pull request #201 from syntheticpp/mingw-msvc
Some workarounds are only for msvc.
Peter Kuemmel [Sun, 22 Jan 2012 21:40:20 +0000 (22:40 +0100)]
only msvc needs these workarounds
Evan Martin [Sun, 22 Jan 2012 18:22:45 +0000 (10:22 -0800)]
windows: use _WIN32 define everywhere
Rather than mixing use of WIN32 and _WIN32.
Qingning Huo [Fri, 20 Jan 2012 21:01:54 +0000 (21:01 +0000)]
Mark CreateProcess "program not found" failure as non-fatal
Evan Martin [Thu, 19 Jan 2012 00:16:49 +0000 (16:16 -0800)]
Merge pull request #198 from nico/strip0
Strip ansi escape sequences from subcommand output when not writing to a...
Nico Weber [Thu, 19 Jan 2012 00:09:16 +0000 (16:09 -0800)]
Strip ansi escape sequences from subcommand output when not writing to a smart terminal.
Evan Martin [Mon, 16 Jan 2012 18:31:43 +0000 (10:31 -0800)]
Merge pull request #197 from doctorlove/simple_dry_run
Simple dry run
Frances Buontempo [Mon, 16 Jan 2012 14:17:37 +0000 (14:17 +0000)]
Add a test that dry run shows all commands that could be run (none
cleaned) and a fix for this
Frances Buontempo [Mon, 16 Jan 2012 13:53:08 +0000 (13:53 +0000)]
Stop warning about chdir etc which are treated as errors on MSVC with the
current settings
Scott Graham [Sat, 14 Jan 2012 03:17:14 +0000 (19:17 -0800)]
windows: always generate PDB
Evan Martin [Fri, 13 Jan 2012 17:02:19 +0000 (09:02 -0800)]
enable libstd++ debugging in debug mode
Evan Martin [Fri, 13 Jan 2012 16:55:49 +0000 (08:55 -0800)]
Merge pull request #196 from evanj/master
Fix MSVC invalid string problem
Evan Jones [Fri, 13 Jan 2012 14:20:07 +0000 (09:20 -0500)]
BuildLog: Use Log::insert(Log::value_type()) to avoid invalid strings.
The MSVC std::string implementation copies strings, so using make_pair
resulted in a pointer to invalid memory. This ensures the insert uses a
StringPiece without an intermediate std::string copy, so the correct pointer
ends up in the hash_map.
Frances Buontempo [Fri, 13 Jan 2012 03:04:42 +0000 (19:04 -0800)]
windows: make ninja_test build
Evan Martin [Thu, 12 Jan 2012 19:21:06 +0000 (11:21 -0800)]
Merge branch 'stringpiece-hash'
This branch changed the fundamental key used in hashes in Ninja from
char* to StringPiece. Using StringPiece allows us to eliminate some
copies and null termination in various places.
While I was at it, I switched the hash function to the Murmur hash.
Seems to be ~100ms faster:
evmar:/work/chrome/src$ ~/projects/ninja/misc/measure.py ~/projects/ninja/ninja-trunk -C out/Debug chrome
sampling: 994ms 1010ms 1000ms 999ms 1019ms 994ms 1002ms 993ms 997ms 1040ms
estimate: 993ms (mean err 11.6ms)
evmar:/work/chrome/src$ ~/projects/ninja/misc/measure.py ~/projects/ninja/ninja -C out/Debug chrome
sampling: 888ms 895ms 891ms 886ms 896ms 888ms 891ms 903ms 895ms 888ms
estimate: 886ms (mean err 5.7ms)
Evan Martin [Thu, 12 Jan 2012 19:16:51 +0000 (11:16 -0800)]
decide on murmur hash, delete stl hash
A nice thing about working on Google: a C++ expert who happened
to be writing a proposal on hashing for the next C++ version
wandered into my office. He seemed to think using Murmur here
is fine.
Evan Martin [Thu, 12 Jan 2012 00:18:37 +0000 (16:18 -0800)]
build gtest with -fvisibility=hidden as well
Fixes a warning on Mac.
Evan Martin [Wed, 11 Jan 2012 18:22:50 +0000 (10:22 -0800)]
make new hash work on windows
Frances Buontempo [Wed, 11 Jan 2012 17:43:11 +0000 (09:43 -0800)]
windows: hash_map bucket count has different getter
Frances Buontempo [Wed, 11 Jan 2012 17:38:41 +0000 (09:38 -0800)]
GetTempPath() needs windows.h
Evan Martin [Mon, 9 Jan 2012 22:06:09 +0000 (14:06 -0800)]
back to murmur hash
Evan Martin [Mon, 9 Jan 2012 21:46:57 +0000 (13:46 -0800)]
remove string copy while loading depfiles
Evan Martin [Mon, 9 Jan 2012 21:40:06 +0000 (13:40 -0800)]
split canonicalize