Evan Martin [Fri, 17 Aug 2012 07:26:01 +0000 (00:26 -0700)]
Merge pull request #401 from syntheticpp/win-network-path
on windows a network path starts with two backslashes
Peter Kuemmel [Thu, 16 Aug 2012 13:26:33 +0000 (15:26 +0200)]
on windows a network path starts with two backslashes
Evan Martin [Thu, 16 Aug 2012 18:31:37 +0000 (11:31 -0700)]
drop HACKING from doxygen
I tried just fixing the code to pull in HACKING.md but it didn't show
up in the doxygen output; it's maybe too long to include anyway.
Evan Martin [Thu, 16 Aug 2012 18:28:03 +0000 (11:28 -0700)]
use 4 space tabs in configure.py, warn on re2c missing
Evan Martin [Thu, 16 Aug 2012 18:25:55 +0000 (11:25 -0700)]
many updates for HACKING.md
In particular, describe a policy for good patches.
Evan Martin [Thu, 16 Aug 2012 05:26:46 +0000 (22:26 -0700)]
Merge pull request #400 from nico/dynre2c
Only write re2c rules if a re2c binary is found in the PATH.
Nico Weber [Thu, 16 Aug 2012 03:11:27 +0000 (20:11 -0700)]
Only write re2c rules if a re2c binary is found in the PATH.
Evan Martin [Thu, 16 Aug 2012 03:08:06 +0000 (20:08 -0700)]
Merge pull request #399 from nico/hackless
Remove -fcolor-diagnostics reference from HACKING
Nico Weber [Thu, 16 Aug 2012 00:34:20 +0000 (17:34 -0700)]
Remove -fcolor-diagnostics reference from HACKING
configure.py adds that flag automatically if CXX is set to clang.
Evan Martin [Wed, 15 Aug 2012 21:46:57 +0000 (14:46 -0700)]
convert HACKING to markdown, add MSVC section
Scott Graham [Wed, 15 Aug 2012 04:09:19 +0000 (21:09 -0700)]
if a file is missing in the log, count it as dirty
This could cause overbuilding (if the log is missing an entry and
the right file is already in place) but is otherwise necessary
for correctness (if a file is already in place but we don't have
a log entry for it).
Evan Martin [Wed, 15 Aug 2012 03:59:21 +0000 (20:59 -0700)]
add a helper binary for wrapping cl.exe
Modify bootstrap etc. to make use of this binary.
Evan Martin [Wed, 15 Aug 2012 03:54:59 +0000 (20:54 -0700)]
pass env block to cl helper
Evan Martin [Mon, 13 Aug 2012 23:38:41 +0000 (16:38 -0700)]
Merge branch 'master' of github.com:martine/ninja
Evan Martin [Mon, 13 Aug 2012 18:39:32 +0000 (11:39 -0700)]
rename -V to --version and clean up --help output
Evan Martin [Mon, 13 Aug 2012 01:43:42 +0000 (18:43 -0700)]
create phony rules for all binaries
Evan Martin [Sun, 12 Aug 2012 23:29:43 +0000 (16:29 -0700)]
msvc helper: drop system includes
Drop any #includes that look like they're referencing system headers.
This reduces the dependency information considerably.
Evan Martin [Sun, 12 Aug 2012 23:27:58 +0000 (16:27 -0700)]
includes_normalize: also lowercase cross-drive includes
It seems to me inconsistent to normalize one but not the other.
Scott Graham [Sun, 12 Aug 2012 22:51:21 +0000 (15:51 -0700)]
add functions for normalizing win32 include paths
(Note from Evan: this is landing Scott's code more or less verbatim
without a lot of analysis; it could maybe be simplified and reduced,
but it's only intended to be used in the MSVC helper so it's fine
to be experimental.)
Evan Martin [Sun, 12 Aug 2012 22:23:31 +0000 (15:23 -0700)]
add .ilk (incremental linker) to .gitignore
Evan Martin [Sun, 12 Aug 2012 22:09:33 +0000 (15:09 -0700)]
msvc helper: attempt to filter out when it prints the input filename
This is a heuristic but it appears to work for the Chrome build.
Evan Martin [Sun, 12 Aug 2012 21:52:18 +0000 (14:52 -0700)]
add subprocess-spawning to msvc_helper
Rather than using subprocess.h, reimplement the subprocess code.
This allows:
1) using anonymous (instead of named) pipes
2) not using all the completion port craziness
3) printing the output as it happens
4) further variation, like adjusting the environment (in a forthcoming
change) without affecting the main subprocess code
Evan Martin [Sun, 12 Aug 2012 21:07:38 +0000 (14:07 -0700)]
doc some cl.exe flags in the configure script
Evan Martin [Sun, 12 Aug 2012 20:57:35 +0000 (13:57 -0700)]
move Win32Fatal into util
Evan Martin [Sun, 12 Aug 2012 19:12:01 +0000 (12:12 -0700)]
add a module for working with MSVC (cl.exe) behavior
This will be needed for performant builds on Windows.
Evan Martin [Sun, 12 Aug 2012 19:01:38 +0000 (12:01 -0700)]
use correct path separator for --with-gtest source
Evan Martin [Sun, 12 Aug 2012 18:59:35 +0000 (11:59 -0700)]
doc that ReadFile reads in text mode on Windows
Matthew Woehlke [Fri, 10 Aug 2012 21:22:34 +0000 (17:22 -0400)]
fix syntax errors in bootstrap.py
Evan Martin [Fri, 10 Aug 2012 20:39:25 +0000 (13:39 -0700)]
windows: fix integer truncation issues for helper binaries
Disable the size_t truncation warning. (Note that this leaves on
the other truncation-related warnings, like int->char.)
Evan Martin [Fri, 10 Aug 2012 20:27:08 +0000 (13:27 -0700)]
windows: fix size_t<->int conversions in ninja.exe
Evan Martin [Fri, 10 Aug 2012 19:45:39 +0000 (12:45 -0700)]
refactor
Matthew Woehlke [Fri, 3 Aug 2012 22:42:44 +0000 (18:42 -0400)]
add bootstrap option to force 64-bit
Evan Martin [Fri, 10 Aug 2012 18:39:35 +0000 (11:39 -0700)]
windows: ignore pdb files
Evan Martin [Wed, 1 Aug 2012 22:30:41 +0000 (15:30 -0700)]
windows bootstrap: clean up object files
Evan Martin [Fri, 10 Aug 2012 17:58:36 +0000 (10:58 -0700)]
document that \r and \t are disallowed
Finishes #394.
Evan Martin [Wed, 8 Aug 2012 16:32:50 +0000 (09:32 -0700)]
fix windows build
Evan Martin [Tue, 7 Aug 2012 20:58:55 +0000 (13:58 -0700)]
use DiskInterface to create the build directory
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.
Evan Martin [Sun, 5 Aug 2012 23:30:49 +0000 (16:30 -0700)]
Merge pull request #397 from nico/mac105
Include unistd.h in files that use unlink() on OS X.
Nico Weber [Sun, 5 Aug 2012 19:02:01 +0000 (12:02 -0700)]
Include unistd.h in files that use unlink() on OS X.
`man unlink` says this is necessary, and according to a report by
Claus Klein, omitting them breaks the build on OS X 10.5 with gcc 4.7
(see issue #396).
(On Windows, ninja's util.h includes a define for unlink.)
Evan Martin [Thu, 2 Aug 2012 22:24:32 +0000 (15:24 -0700)]
reject tabs (and CRs) in input files more aggressively
Evan Martin [Wed, 1 Aug 2012 23:13:31 +0000 (16:13 -0700)]
Merge branch 'master' of github.com:martine/ninja
Evan Martin [Wed, 1 Aug 2012 23:12:55 +0000 (16:12 -0700)]
Merge branch 'factor-elide-middle' of git://github.com/polrop/ninja
Conflicts:
src/util.cc
Evan Martin [Wed, 1 Aug 2012 15:49:35 +0000 (08:49 -0700)]
Merge pull request #388 from sgraham/fix-hash-map-string-piece
fix hash_map StringPiece comparator
Scott Graham [Tue, 31 Jul 2012 17:05:34 +0000 (10:05 -0700)]
fix hash_map StringPiece comparator
Nicolas Despres [Sat, 28 Jul 2012 12:41:20 +0000 (14:41 +0200)]
Re-factor elide code and test it.
Evan Martin [Sat, 28 Jul 2012 20:35:13 +0000 (13:35 -0700)]
use chdir() define from util.h
Evan Martin [Sat, 28 Jul 2012 20:32:23 +0000 (13:32 -0700)]
move processor-count code to util.cc
Evan Martin [Sat, 28 Jul 2012 20:28:56 +0000 (13:28 -0700)]
note that -l doesn't work on windows
Filed issue #386 about it too.
Evan Martin [Sat, 28 Jul 2012 20:27:27 +0000 (13:27 -0700)]
simplify load-average code
Evan Martin [Sat, 28 Jul 2012 20:21:39 +0000 (13:21 -0700)]
delete vestigal declarations
Evan Martin [Sat, 28 Jul 2012 18:51:17 +0000 (11:51 -0700)]
Merge pull request #385 from nico/nolotsonosx
Disable SubprocessTest.TestWithLots on OS X.
Nico Weber [Sat, 28 Jul 2012 18:17:08 +0000 (11:17 -0700)]
Disable SubprocessTest.TestWithLots on OS X.
It fails on OS X, see issue #384.
Evan Martin [Sat, 28 Jul 2012 18:04:57 +0000 (11:04 -0700)]
Merge pull request #383 from nico/fix380
Fix issue #380.
Nico Weber [Sat, 28 Jul 2012 16:56:59 +0000 (09:56 -0700)]
Revert "Make StringPiece data members private."
This reverts commit
904c9610fe66c4f4bd63a07d6f057c8603d24394.
The commit caused issue #380, this revert fixes it. The revert
also makes the test from the previous commit pass.
Nico Weber [Sat, 28 Jul 2012 16:56:55 +0000 (09:56 -0700)]
Add a regression test for issue #380 (which fails at the moment)
Evan Martin [Fri, 27 Jul 2012 22:49:30 +0000 (15:49 -0700)]
Merge pull request #378 from syntheticpp/msvc-fixes
also build with msvc
Peter Kümmel [Fri, 27 Jul 2012 21:09:52 +0000 (23:09 +0200)]
also build with msvc
Evan Martin [Fri, 27 Jul 2012 20:46:46 +0000 (13:46 -0700)]
fix a warning and leak in windows-specific console output code
Claus Klein [Fri, 27 Jul 2012 20:06:03 +0000 (13:06 -0700)]
fix error and prevent warning in GetTimeMillis()
Evan Martin [Fri, 27 Jul 2012 19:39:12 +0000 (12:39 -0700)]
Merge branch 'master' of github.com:martine/ninja
Evan Martin [Fri, 27 Jul 2012 19:39:02 +0000 (12:39 -0700)]
Merge pull request #352 from tfarina/string-piece-private
Make StringPiece data members private.
Evan Martin [Fri, 27 Jul 2012 19:24:40 +0000 (12:24 -0700)]
rename subprocess.cc to reflex its posixness
Evan Martin [Fri, 27 Jul 2012 19:02:59 +0000 (12:02 -0700)]
rearrange minidump patch to match ninja code style
Evan Martin [Fri, 27 Jul 2012 18:44:06 +0000 (11:44 -0700)]
Merge branch 'set_terminate' of git://github.com/gmoudry/ninja into minidump
(This likely doesn't compile, just getting all the history in place.)
Conflicts:
src/util.cc
Evan Martin [Fri, 27 Jul 2012 17:59:19 +0000 (10:59 -0700)]
Merge pull request #351 from syntheticpp/rate
print edges per second
Evan Martin [Fri, 27 Jul 2012 17:38:44 +0000 (10:38 -0700)]
make the build log test match the indended build log logic
As described on https://github.com/martine/ninja/pull/349 , this test
shouldn't have been passing. Fixing a Valgrind issue showed that the
test was wrong. Thankfully it wasn't a critical issue.
The new code verifies that we either succeed or report an error when
parsing -- the only behavior we really care about is not crashing.
Maxim Kalaev [Thu, 28 Jun 2012 06:34:19 +0000 (09:34 +0300)]
Minor: zero log buffer before reading data/parsing it
Not a real problem, mainly to make valgrind happy
Evan Martin [Fri, 27 Jul 2012 17:17:20 +0000 (10:17 -0700)]
mingw: specify _WIN32_WINNT also in configure.py
Evan Martin [Fri, 27 Jul 2012 17:15:34 +0000 (10:15 -0700)]
fix some mingw warnings in getopt.c
From a patch from Claus Klein <claus.klein@arcormail.de>.
Evan Martin [Fri, 27 Jul 2012 17:08:06 +0000 (10:08 -0700)]
windows: fix printf format for process id
Evan Martin [Fri, 27 Jul 2012 17:05:20 +0000 (10:05 -0700)]
mingw: fix quoting of -DNINJA_PYTHON
Evan Martin [Fri, 27 Jul 2012 17:01:53 +0000 (10:01 -0700)]
bootstrap: set _WIN32_WINNT to WinXP for mingw
From a patch from Peter Kuemmel <syntheticpp@gmx.net>.
Evan Martin [Fri, 27 Jul 2012 16:53:40 +0000 (09:53 -0700)]
wrap at 80 columns
Evan Martin [Fri, 27 Jul 2012 16:45:06 +0000 (09:45 -0700)]
Merge pull request #369 from maximuska/proposed/packaging-rpm
packaging: added basic RPM building
Maxim Kalaev [Thu, 26 Jul 2012 12:21:30 +0000 (15:21 +0300)]
packaging: added basic RPM building
Evan Martin [Wed, 25 Jul 2012 18:02:34 +0000 (11:02 -0700)]
Merge pull request #368 from nico/toolpipe
Don't print 'Entering directory' when running tools.
Nico Weber [Wed, 25 Jul 2012 17:34:14 +0000 (10:34 -0700)]
Don't print 'Entering directory' when running tools.
Evan Martin [Tue, 24 Jul 2012 06:55:22 +0000 (23:55 -0700)]
Merge pull request #367 from tfarina/lowercase
Use lowercase consistently.
Thiago Farina [Fri, 20 Jul 2012 15:19:18 +0000 (12:19 -0300)]
Use lowercase consistently.
https://github.com/martine/ninja/issues/360
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Fri, 20 Jul 2012 07:17:44 +0000 (00:17 -0700)]
Merge pull request #366 from sgraham/no-noisy-cursor
windows: use WriteConsoleOutput instead of printf to avoid moving cursor
Scott Graham [Thu, 19 Jul 2012 22:17:38 +0000 (15:17 -0700)]
windows: use WriteConsoleOutput instead of printf to avoid moving cursor
Evan Martin [Thu, 19 Jul 2012 18:35:37 +0000 (11:35 -0700)]
Merge pull request #365 from maximuska/proposed/dep-file-parsing-more-specials
dep file parsing: allow '@' and '=' in paths
Maxim Kalaev [Thu, 19 Jul 2012 05:49:34 +0000 (08:49 +0300)]
dep file parsing: allow '@' and '=' in paths
Evan Martin [Wed, 18 Jul 2012 00:38:48 +0000 (17:38 -0700)]
disallow crlf in manifest files
It turns out to be trickier than expected to process these correctly.
It turns out to also be trickier than expected to give a nice error
message on encountering these. But the behavior prior to this patch
would just be silent failures where we attempted to examine paths
that accidentally contained embedded \r.
For now, fix all regexes of the form [^...] to include \r in the
excluded block, then assert that we get a vague lexer error near the
problem.
In the future perhaps we can open manifest files in text mode on Windows
or just disallow Windows-style CRLF in the manual.
Evan Martin [Tue, 17 Jul 2012 23:42:53 +0000 (16:42 -0700)]
explain mode: show which input is more recent
Patch from Scott Graham <scottmg@chromium.org>.
Evan Martin [Tue, 17 Jul 2012 23:32:44 +0000 (16:32 -0700)]
windows: get correct path for ninja_syntax
Patch from Scott Graham <scottmg@chromium.org>.
Evan Martin [Tue, 17 Jul 2012 23:19:50 +0000 (16:19 -0700)]
gitignore unpacked gtest
Patch from Scott Graham <scottmg@chromium.org>.
Evan Martin [Tue, 17 Jul 2012 16:34:10 +0000 (09:34 -0700)]
subprocess_test: make SetWithLots run on all non-Windows platforms
I think it might have been an oversight that this was marked
Linux-specific.
Evan Martin [Tue, 17 Jul 2012 20:26:11 +0000 (13:26 -0700)]
ninja_syntax: escape colons in paths
Evan Martin [Tue, 17 Jul 2012 20:20:12 +0000 (13:20 -0700)]
Merge pull request #340 from sgraham/fix-win-build
fix win32 compile, fix BuildLogTest.WriteRead on 2nd run
Evan Martin [Tue, 17 Jul 2012 16:31:52 +0000 (09:31 -0700)]
Merge pull request #363 from usovalx/subprocess_test_build_failure
Add missing include of <sys/resouce.h>
Evan Martin [Tue, 17 Jul 2012 15:59:55 +0000 (08:59 -0700)]
fix manual to reflect reality of depfile cleaning
Fixes issue #362.
Evan Martin [Tue, 17 Jul 2012 15:24:49 +0000 (08:24 -0700)]
Merge pull request #364 from tfarina/pragma-once
Remove #pragma once from our header files.
Thiago Farina [Tue, 17 Jul 2012 14:35:12 +0000 (11:35 -0300)]
Remove #pragma once from our header files.
https://github.com/martine/ninja/issues/358
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Oleksandr Usov [Mon, 16 Jul 2012 13:05:53 +0000 (14:05 +0100)]
Add missing include of <sys/resouce.h>
Peter Kümmel [Fri, 6 Jul 2012 09:12:36 +0000 (11:12 +0200)]
GCC 4.7 needs cstdio
Peter Kuemmel [Fri, 29 Jun 2012 14:12:03 +0000 (16:12 +0200)]
print edges per second
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)
Evan Martin [Sun, 15 Jul 2012 00:20:30 +0000 (17:20 -0700)]
Merge pull request #361 from HeisSpiter/master
Check more efficiently for emptiness
Pierre Schweitzer [Sat, 14 Jul 2012 15:54:17 +0000 (17:54 +0200)]
Efficiently check for emptiness
Evan Martin [Wed, 11 Jul 2012 21:40:28 +0000 (14:40 -0700)]
Merge pull request #359 from tedv/old-arch
Fix missing POLLRDHUP constant on older systems.