Evan Martin [Sat, 3 Sep 2011 20:38:44 +0000 (13:38 -0700)]
Merge pull request #89 from tfarina/state
Factor out State struct from ninja_jumble.cc into its header/source files
Thiago Farina [Fri, 26 Aug 2011 23:58:28 +0000 (20:58 -0300)]
Factor out State struct from ninja_jumble.cc into its header/source files.
This was a TODO in src/ninja_jumble.cc. Now this task is completed.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Sat, 3 Sep 2011 15:52:18 +0000 (08:52 -0700)]
Merge pull request #92 from pcc/fix-warning
Fix a Clang self-assign warning by casting result to void
Evan Martin [Sat, 3 Sep 2011 15:37:03 +0000 (08:37 -0700)]
Merge pull request #90 from pcc/default-target-statements
Implement default target statements
Peter Collingbourne [Wed, 31 Aug 2011 17:55:38 +0000 (18:55 +0100)]
Fix a Clang self-assign warning by casting result to void
Peter Collingbourne [Wed, 31 Aug 2011 03:55:35 +0000 (04:55 +0100)]
Implement default target statements
This introduces a new directive, the default target statement, which
may be used to control the list of targets built by default (i.e. if
no target is named on the command line).
Evan Martin [Mon, 29 Aug 2011 18:19:22 +0000 (11:19 -0700)]
ninja_syntax.py: add include and subninja
Evan Martin [Fri, 26 Aug 2011 20:40:45 +0000 (13:40 -0700)]
Merge pull request #87 from tfarina/fix-ninja-compilation
Fix ninja compilation by including a missing disk_interface.h.
Thiago Farina [Thu, 25 Aug 2011 20:00:38 +0000 (17:00 -0300)]
Fix ninja compilation by including a missing disk_interface.h.
When running ./ninja the compilation fails because test.h uses DiskInterface but
doesn't include disk_interface.h to get the declaration.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Thu, 25 Aug 2011 15:02:51 +0000 (08:02 -0700)]
Merge pull request #86 from tfarina/real-disk-interface
Move RealDiskInterface class to disk_interface.h.
Thiago Farina [Wed, 24 Aug 2011 00:33:41 +0000 (21:33 -0300)]
Move RealDiskInterface class to disk_interface.h.
This is a TODO in src/ninja_jumble.cc
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Wed, 24 Aug 2011 22:49:41 +0000 (15:49 -0700)]
semantic change: allow reaching into parent directories in paths
This allows generating build files in a subdirectory of your source tree.
- Change CanonicalizePath to accept this.
- CanonicalizePath no longer has an error condition, so change it to a void
function.
I profiled the result against Chrome and it might be ~100ms slower, but that
might just be Chrome's size working against me. In any case I think there
are lower-hanging performance fruit elsewhere.
Evan Martin [Tue, 23 Aug 2011 16:17:23 +0000 (09:17 -0700)]
Merge pull request #82 from tfarina/disk-interface
Factor out DiskInterface class into its own source/header files.
Evan Martin [Thu, 18 Aug 2011 17:38:45 +0000 (10:38 -0700)]
Merge pull request #83 from rlarocque2/master
Update configure.py following ninja.py rename
Richard Larocque [Wed, 17 Aug 2011 18:32:39 +0000 (11:32 -0700)]
Update configure.py for ninja module rename
Evan Martin [Tue, 9 Aug 2011 20:38:43 +0000 (13:38 -0700)]
rename ninja module to ninja_syntax
Evan Martin [Tue, 9 Aug 2011 20:21:21 +0000 (13:21 -0700)]
add escaping function to python module
Thiago Farina [Wed, 10 Aug 2011 12:47:32 +0000 (09:47 -0300)]
Factor out DiskInterface class into its own source/header files.
This is a TODO in src/ninja_jumble.cc
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Wed, 10 Aug 2011 03:31:45 +0000 (20:31 -0700)]
Merge pull request #80 from tfarina/master
fix trivial style issue.
Thiago Farina [Tue, 9 Aug 2011 23:07:50 +0000 (20:07 -0300)]
Fix trivial style issues with Cleaner class.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Wed, 27 Jul 2011 17:06:52 +0000 (10:06 -0700)]
fix double-indenting
Evan Martin [Wed, 27 Jul 2011 16:59:22 +0000 (09:59 -0700)]
ninja.py: fix the new test and pass the test
From a patch from Elazar Leibovich <elazarl@gmail.com>.
Evan Martin [Wed, 27 Jul 2011 16:35:50 +0000 (09:35 -0700)]
unit test for line-wrapping in ninja.py
From a patch from Elazar Leibovich <elazarl@gmail.com>.
Evan Martin [Tue, 26 Jul 2011 00:51:47 +0000 (17:51 -0700)]
don't track line/column until you encounter an error, then re-parse
This speeds up the common case (where you don't need a line number)
at the small expense of the uncommon case (for error messages, you
do need a line number). And it's less code.
Evan Martin [Mon, 25 Jul 2011 18:22:33 +0000 (11:22 -0700)]
add a --debug option to configure
Evan Martin [Thu, 30 Jun 2011 17:31:25 +0000 (10:31 -0700)]
don't leak the build_log file descriptor into subprocesses
Closes issue #74.
Evan Martin [Thu, 30 Jun 2011 17:20:54 +0000 (10:20 -0700)]
clean: don't delete phony targets
Based on a patch from John Birtley.
Evan Martin [Thu, 30 Jun 2011 17:17:20 +0000 (10:17 -0700)]
Merge pull request #73 from qhuo/setvbuf
Set stdout to line-buffered.
Qingning Huo [Tue, 28 Jun 2011 18:56:39 +0000 (19:56 +0100)]
Set stdout to line-buffered.
Evan Martin [Tue, 28 Jun 2011 17:43:57 +0000 (10:43 -0700)]
Merge pull request #71 from jbirtley/master
Fix for long command lines in Win32
U-MATHLETE\John [Sun, 26 Jun 2011 11:25:45 +0000 (12:25 +0100)]
Fix for win32 long command lines:
- remove 'cmd /c' prepend from SubProcess::Start()
- fix the subprocess tests to prepend 'cmd /c' explicitly
Evan Martin [Sat, 25 Jun 2011 20:16:43 +0000 (13:16 -0700)]
Fix for 'pipe has ended' errors on Win32 distributed builds
Patch from John Birtley.
Evan Martin [Sat, 25 Jun 2011 20:02:58 +0000 (13:02 -0700)]
Merge pull request #69 from Roorback/master
Path to python interpreter (on FreeBSD)
Evan Martin [Sat, 25 Jun 2011 19:56:23 +0000 (12:56 -0700)]
Merge pull request #70 from scottfranklin/master
Add tab-completion for zsh.
Evan Martin [Sat, 25 Jun 2011 19:37:39 +0000 (12:37 -0700)]
add docs on variable expansion
Evan Martin [Sat, 25 Jun 2011 19:15:18 +0000 (12:15 -0700)]
mention python module in the docs
Scott Franklin [Thu, 23 Jun 2011 01:40:12 +0000 (18:40 -0700)]
Adding tab-completion function for zsh.
Grzegorz Blach [Tue, 21 Jun 2011 19:07:07 +0000 (21:07 +0200)]
Respect $CXX, fallback to 'g++' in bootstrap.sh
Grzegorz Blach [Mon, 20 Jun 2011 20:35:34 +0000 (22:35 +0200)]
use /usr/bin/env to find python interpreter
Evan Martin [Thu, 16 Jun 2011 01:12:42 +0000 (18:12 -0700)]
Merge pull request #62 from qhuo/multiple-outputs-fix
Add a test for the multiple outputs fix
Qingning Huo [Tue, 14 Jun 2011 21:54:30 +0000 (22:54 +0100)]
Add a test for the multiple outputs fix
Evan Martin [Tue, 14 Jun 2011 02:28:02 +0000 (19:28 -0700)]
Merge pull request #59 from qhuo/multiple-outputs-fix
Multiple outputs fix: make $out include all outptus
Qingning Huo [Fri, 10 Jun 2011 23:13:33 +0000 (00:13 +0100)]
src/graph.cc: fix EdgeEnv::LookupVariable
Make it return the correct value for "out" when there are multiple outputs.
It used to return only the first target file.
Qingning Huo [Fri, 10 Jun 2011 22:37:31 +0000 (23:37 +0100)]
build_log_test.cc: add 3 #include for stat(2) on Linux
Evan Martin [Fri, 3 Jun 2011 18:42:58 +0000 (11:42 -0700)]
remove +x bit from source
Philip Craig [Sun, 29 May 2011 18:24:46 +0000 (19:24 +0100)]
On Windows, ninja didn't create needed paths first
Now it does. Still works as it should on linux too.
The canonical example that now works on Windows is:
builddir = build
rule copy
command = copy $in $out
build $builddir\fred\test.out: copy test.in
Evan Martin [Tue, 31 May 2011 16:42:50 +0000 (09:42 -0700)]
Merge branch 'master' of github.com:martine/ninja
Thiago Farina [Tue, 31 May 2011 16:36:23 +0000 (13:36 -0300)]
ninja: Split StatCache struct into its own header file.
Note: This is a TODO in ninja_jumble.cc.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Evan Martin [Sun, 29 May 2011 17:20:56 +0000 (10:20 -0700)]
Merge pull request #51 from philipcraig/master
mingw ninja_test links and passes. (as do linux and native VS2010)
Philip Craig [Sun, 29 May 2011 08:18:49 +0000 (09:18 +0100)]
mingw ninja_test links and passes. (as do linux and native VS2010)
Use chsize instead of truncate for mingw compatibility
SubprocessTest uses DoWork to force Subprocesses to execute
Drop GoodCommandStdOut test as it is tested in SetWithSingle
Evan Martin [Sat, 28 May 2011 19:07:21 +0000 (12:07 -0700)]
Merge pull request #50 from philipcraig/master
Fixes to let native builds on Visual Studio 2010 build, pass tests
Philip Craig [Sat, 28 May 2011 08:28:01 +0000 (09:28 +0100)]
Tests now build on a native Windows build (tested with VS2010)
All tests except SubProcess pass on a native Windows build
Tests continue not to build on a platform=mingw build
Evan Martin [Fri, 27 May 2011 18:47:14 +0000 (11:47 -0700)]
use 0 for NULL in test to silence gcc 4.5 warning
Evan Martin [Fri, 27 May 2011 03:15:05 +0000 (20:15 -0700)]
expand $$ as $
Evan Martin [Sun, 22 May 2011 17:15:11 +0000 (10:15 -0700)]
switch to $ as the line continuation char
This means that backslashes are passed through without interpretation,
allowing us to support Windows paths without worrying about escaping.
Evan Martin [Wed, 25 May 2011 17:54:11 +0000 (10:54 -0700)]
perftest: print summary info at end
Evan Martin [Wed, 25 May 2011 17:38:00 +0000 (10:38 -0700)]
add --profile configure flag
Evan Martin [Wed, 25 May 2011 02:04:11 +0000 (19:04 -0700)]
add more test coverage for makefile parsing
Evan Martin [Tue, 24 May 2011 17:07:08 +0000 (10:07 -0700)]
add a test program for evaluating depfile parse speed
Evan Martin [Tue, 24 May 2011 16:55:39 +0000 (09:55 -0700)]
move GetTimeMillis to util
Evan Martin [Tue, 24 May 2011 16:47:24 +0000 (09:47 -0700)]
move ReadFile into util
Evan Martin [Tue, 24 May 2011 03:48:54 +0000 (20:48 -0700)]
refactor let parsing, passing another test
Evan Martin [Mon, 23 May 2011 16:30:33 +0000 (09:30 -0700)]
refactor
Evan Martin [Mon, 23 May 2011 16:26:16 +0000 (09:26 -0700)]
show correct location for unexpected var error
Evan Martin [Mon, 23 May 2011 16:17:39 +0000 (09:17 -0700)]
refactor parser, check in some failing tests
Evan Martin [Sun, 22 May 2011 17:28:09 +0000 (10:28 -0700)]
emacs: highlight variable expansions too
Evan Martin [Sun, 22 May 2011 17:11:15 +0000 (10:11 -0700)]
merge two line continuation codepaths
Evan Martin [Sun, 22 May 2011 16:25:34 +0000 (09:25 -0700)]
include filename in subninja load err message
Evan Martin [Fri, 20 May 2011 16:06:44 +0000 (09:06 -0700)]
update obsolete HACKING notes
Evan Martin [Wed, 18 May 2011 05:35:34 +0000 (22:35 -0700)]
don't recompact log often for small programs
Evan Martin [Tue, 17 May 2011 23:36:30 +0000 (16:36 -0700)]
make the phony depfile edge order-only
I'm not sure this is semantically different but it's consistent with
how I think about these phony edges.
Evan Martin [Tue, 17 May 2011 23:35:32 +0000 (16:35 -0700)]
don't mangle absolute paths in the canonicalizer
We frequently do use absolute paths when depfiles refer to
e.g. /usr/include/stdio.h.
Evan Martin [Tue, 17 May 2011 22:37:52 +0000 (15:37 -0700)]
add extra check for no error in build test
Evan Martin [Tue, 17 May 2011 22:27:00 +0000 (15:27 -0700)]
update instructions on using gyp; mention cmake
Evan Martin [Tue, 17 May 2011 17:38:23 +0000 (10:38 -0700)]
simplify CommandRunner, simplifying users too
After much staring at this I think I found the more clear way to
express what it's doing.
Evan Martin [Tue, 17 May 2011 17:10:40 +0000 (10:10 -0700)]
rearrange build loop, pass new test
Evan Martin [Tue, 17 May 2011 16:54:23 +0000 (09:54 -0700)]
check in failing test that hits the "stuck" state
Evan Martin [Tue, 17 May 2011 17:34:00 +0000 (10:34 -0700)]
Merge pull request #46 from iwadon/fix-asciidoc-args
fix the error: 'asciidoc: To many arguments'
Hiroyuki Iwatsuki [Sun, 15 May 2011 23:38:11 +0000 (08:38 +0900)]
fix the error: 'asciidoc: To many arguments'
Evan Martin [Sat, 14 May 2011 23:11:41 +0000 (16:11 -0700)]
move various doc files out of top-level directory
Evan Martin [Sat, 14 May 2011 22:43:23 +0000 (15:43 -0700)]
show started, not finished, edges in progress
In verbose mode (where we don't overprint) it's confusing to show
[0/XX] for the first N commands we start. In smart terminal mode,
I can't really tell the difference.
Evan Martin [Sat, 14 May 2011 22:34:13 +0000 (15:34 -0700)]
correctly compute truncation margin
Evan Martin [Sat, 14 May 2011 22:17:50 +0000 (15:17 -0700)]
refactor status printing into BuildStatus
Centralizing printing allows being more careful about what is output.
1) Always include the [2/15] prefix on commands.
2) Make the header command match the error output command.
Evan Martin [Sat, 14 May 2011 21:29:27 +0000 (14:29 -0700)]
hide internals of BuildStatus
Evan Martin [Fri, 13 May 2011 23:24:27 +0000 (16:24 -0700)]
remove order-only hacks now that semantics changed
Evan Martin [Fri, 13 May 2011 17:47:26 +0000 (10:47 -0700)]
SEMANTIC CHANGE: implicit inputs are now required to exist
Edges found through depfiles are special: they get an extra
empty "phony" rule. (This is identical to the way you hack this
with Makefiles.)
Evan Martin [Fri, 13 May 2011 16:07:43 +0000 (09:07 -0700)]
tweak browse appearance
Evan Martin [Fri, 13 May 2011 15:53:02 +0000 (08:53 -0700)]
make browse work for all ninja paths
Pass the path to the ninja binary in to the Python script.
Confusingly, in some places the variables were already in place
to do this, but they were accidentally used for something else
entirely.
Evan Martin [Thu, 12 May 2011 21:01:52 +0000 (14:01 -0700)]
refix recompaction
Like all untested quick fixes, my previous quick fix actually introduced
a reliable segfault.
Evan Martin [Wed, 11 May 2011 18:33:55 +0000 (11:33 -0700)]
quick fix: write out signature in recompaction
This needs refactoring but I already pushed the bad code so this
hopefully makes it less broken.
Evan Martin [Wed, 11 May 2011 16:58:29 +0000 (09:58 -0700)]
don't crash on truncated log files
Add a test that tries all truncations of a log file and verifies it
doesn't crash.
Evan Martin [Mon, 9 May 2011 23:24:24 +0000 (16:24 -0700)]
add a versioning header to build log, switch to v2
In v2 we store both the start and end time of the command.
This allows better visualization of the build process.
Evan Martin [Tue, 10 May 2011 16:35:10 +0000 (09:35 -0700)]
clang note
Evan Martin [Tue, 10 May 2011 16:04:09 +0000 (09:04 -0700)]
Merge pull request #44 from polrop/update-todo
Update the todo list since -k is implemented now.
Evan Martin [Tue, 10 May 2011 16:03:58 +0000 (09:03 -0700)]
Merge pull request #43 from polrop/fix-bootstrap-for-dash
Fix bootstrap script for dash.
Nicolas Despres [Tue, 10 May 2011 13:58:47 +0000 (15:58 +0200)]
Update the todo list since -k is implemented now.
Nicolas Despres [Tue, 10 May 2011 13:55:21 +0000 (15:55 +0200)]
Fix bootstrap script for dash.
On Ubuntu /bin/sh is a link to dash. The bootstrap script reported a
'Bad substitution' error line 39 when interpreted by dash. This patch fix the
problem.
Evan Martin [Mon, 9 May 2011 23:24:47 +0000 (16:24 -0700)]
fix test
Evan Martin [Mon, 9 May 2011 15:58:13 +0000 (08:58 -0700)]
make platform a command-line arg to configure
Evan Martin [Mon, 9 May 2011 15:50:25 +0000 (08:50 -0700)]
expose -k flag to users