platform/upstream/ninja.git
13 years agosrc/graph.cc: fix EdgeEnv::LookupVariable
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.

13 years agobuild_log_test.cc: add 3 #include for stat(2) on Linux
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

13 years agoremove +x bit from source
Evan Martin [Fri, 3 Jun 2011 18:42:58 +0000 (11:42 -0700)]
remove +x bit from source

13 years agoOn Windows, ninja didn't create needed paths first
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

13 years agoMerge branch 'master' of github.com:martine/ninja
Evan Martin [Tue, 31 May 2011 16:42:50 +0000 (09:42 -0700)]
Merge branch 'master' of github.com:martine/ninja

13 years agoninja: Split StatCache struct into its own header file.
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>
13 years agoMerge pull request #51 from philipcraig/master
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)

13 years agomingw 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

13 years agoMerge pull request #50 from philipcraig/master
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

13 years agoTests now build on a native Windows build (tested with VS2010)
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

13 years agouse 0 for NULL in test to silence gcc 4.5 warning
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

13 years agoexpand $$ as $
Evan Martin [Fri, 27 May 2011 03:15:05 +0000 (20:15 -0700)]
expand $$ as $

13 years agoswitch to $ as the line continuation char
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.

13 years agoperftest: print summary info at end
Evan Martin [Wed, 25 May 2011 17:54:11 +0000 (10:54 -0700)]
perftest: print summary info at end

13 years agoadd --profile configure flag
Evan Martin [Wed, 25 May 2011 17:38:00 +0000 (10:38 -0700)]
add --profile configure flag

13 years agoadd more test coverage for makefile parsing
Evan Martin [Wed, 25 May 2011 02:04:11 +0000 (19:04 -0700)]
add more test coverage for makefile parsing

13 years agoadd a test program for evaluating depfile parse speed
Evan Martin [Tue, 24 May 2011 17:07:08 +0000 (10:07 -0700)]
add a test program for evaluating depfile parse speed

13 years agomove GetTimeMillis to util
Evan Martin [Tue, 24 May 2011 16:55:39 +0000 (09:55 -0700)]
move GetTimeMillis to util

13 years agomove ReadFile into util
Evan Martin [Tue, 24 May 2011 16:47:24 +0000 (09:47 -0700)]
move ReadFile into util

13 years agorefactor let parsing, passing another test
Evan Martin [Tue, 24 May 2011 03:48:54 +0000 (20:48 -0700)]
refactor let parsing, passing another test

13 years agorefactor
Evan Martin [Mon, 23 May 2011 16:30:33 +0000 (09:30 -0700)]
refactor

13 years agoshow correct location for unexpected var error
Evan Martin [Mon, 23 May 2011 16:26:16 +0000 (09:26 -0700)]
show correct location for unexpected var error

13 years agorefactor parser, check in some failing tests
Evan Martin [Mon, 23 May 2011 16:17:39 +0000 (09:17 -0700)]
refactor parser, check in some failing tests

13 years agoemacs: highlight variable expansions too
Evan Martin [Sun, 22 May 2011 17:28:09 +0000 (10:28 -0700)]
emacs: highlight variable expansions too

13 years agomerge two line continuation codepaths
Evan Martin [Sun, 22 May 2011 17:11:15 +0000 (10:11 -0700)]
merge two line continuation codepaths

13 years agoinclude filename in subninja load err message
Evan Martin [Sun, 22 May 2011 16:25:34 +0000 (09:25 -0700)]
include filename in subninja load err message

13 years agoupdate obsolete HACKING notes
Evan Martin [Fri, 20 May 2011 16:06:44 +0000 (09:06 -0700)]
update obsolete HACKING notes

13 years agodon't recompact log often for small programs
Evan Martin [Wed, 18 May 2011 05:35:34 +0000 (22:35 -0700)]
don't recompact log often for small programs

13 years agomake the phony depfile edge order-only
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.

13 years agodon't mangle absolute paths in the canonicalizer
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.

13 years agoadd extra check for no error in build test
Evan Martin [Tue, 17 May 2011 22:37:52 +0000 (15:37 -0700)]
add extra check for no error in build test

13 years agoupdate instructions on using gyp; mention cmake
Evan Martin [Tue, 17 May 2011 22:27:00 +0000 (15:27 -0700)]
update instructions on using gyp; mention cmake

13 years agosimplify CommandRunner, simplifying users too
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.

13 years agorearrange build loop, pass new test
Evan Martin [Tue, 17 May 2011 17:10:40 +0000 (10:10 -0700)]
rearrange build loop, pass new test

13 years agocheck in failing test that hits the "stuck" state
Evan Martin [Tue, 17 May 2011 16:54:23 +0000 (09:54 -0700)]
check in failing test that hits the "stuck" state

13 years agoMerge pull request #46 from iwadon/fix-asciidoc-args
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'

13 years agofix 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'

13 years agomove various doc files out of top-level directory
Evan Martin [Sat, 14 May 2011 23:11:41 +0000 (16:11 -0700)]
move various doc files out of top-level directory

13 years agoshow started, not finished, edges in progress
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.

13 years agocorrectly compute truncation margin
Evan Martin [Sat, 14 May 2011 22:34:13 +0000 (15:34 -0700)]
correctly compute truncation margin

13 years agorefactor status printing into BuildStatus
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.

13 years agohide internals of BuildStatus
Evan Martin [Sat, 14 May 2011 21:29:27 +0000 (14:29 -0700)]
hide internals of BuildStatus

13 years agoremove order-only hacks now that semantics changed
Evan Martin [Fri, 13 May 2011 23:24:27 +0000 (16:24 -0700)]
remove order-only hacks now that semantics changed

13 years agoSEMANTIC CHANGE: implicit inputs are now required to exist
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.)

13 years agotweak browse appearance
Evan Martin [Fri, 13 May 2011 16:07:43 +0000 (09:07 -0700)]
tweak browse appearance

13 years agomake browse work for all ninja paths
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.

13 years agorefix recompaction
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.

13 years agoquick fix: write out signature in recompaction
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.

13 years agodon't crash on truncated log files
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.

13 years agoadd a versioning header to build log, switch to v2
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.

13 years agoclang note
Evan Martin [Tue, 10 May 2011 16:35:10 +0000 (09:35 -0700)]
clang note

13 years agoMerge pull request #44 from polrop/update-todo
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.

13 years agoMerge pull request #43 from polrop/fix-bootstrap-for-dash
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.

13 years agoUpdate the todo list since -k is implemented now.
Nicolas Despres [Tue, 10 May 2011 13:58:47 +0000 (15:58 +0200)]
Update the todo list since -k is implemented now.

13 years agoFix bootstrap script for dash.
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.

13 years agofix test
Evan Martin [Mon, 9 May 2011 23:24:47 +0000 (16:24 -0700)]
fix test

13 years agomake platform a command-line arg to configure
Evan Martin [Mon, 9 May 2011 15:58:13 +0000 (08:58 -0700)]
make platform a command-line arg to configure

13 years agoexpose -k flag to users
Evan Martin [Mon, 9 May 2011 15:50:25 +0000 (08:50 -0700)]
expose -k flag to users

13 years agoadd support for ignoring failures of some subtasks
Evan Martin [Mon, 9 May 2011 04:47:03 +0000 (21:47 -0700)]
add support for ignoring failures of some subtasks

13 years agorename gen-build-file to configure
Evan Martin [Mon, 9 May 2011 04:53:34 +0000 (21:53 -0700)]
rename gen-build-file to configure

Change it so it always writes build.ninja; easier to run directly.

13 years agowindows: remove extra print
Evan Martin [Sun, 8 May 2011 21:08:30 +0000 (14:08 -0700)]
windows: remove extra print

13 years agowindows: fix more signedness warnings
Evan Martin [Sun, 8 May 2011 20:59:30 +0000 (13:59 -0700)]
windows: fix more signedness warnings

13 years agowindows: pass subprocess tests
Evan Martin [Fri, 6 May 2011 21:20:34 +0000 (14:20 -0700)]
windows: pass subprocess tests

13 years agowindows: pass the DiskInterface tests
Evan Martin [Sun, 8 May 2011 03:11:19 +0000 (20:11 -0700)]
windows: pass the DiskInterface tests

13 years agoMerge pull request #42 from ascherkus/master
Evan Martin [Sun, 8 May 2011 20:33:34 +0000 (13:33 -0700)]
Merge pull request #42 from ascherkus/master

Quick fix for bootstrap.sh due to win32 files

13 years agoFix bootstrap.sh to include the correct subprocess{-win32}.cc based on the platform.
Andrew Scherkus [Sun, 8 May 2011 03:52:27 +0000 (20:52 -0700)]
Fix bootstrap.sh to include the correct subprocess{-win32}.cc based on the platform.

13 years agoamend HACKING with how to dev for windows
Evan Martin [Fri, 6 May 2011 21:24:02 +0000 (14:24 -0700)]
amend HACKING with how to dev for windows

13 years agowindows: successfully link tests
Evan Martin [Fri, 6 May 2011 21:17:07 +0000 (14:17 -0700)]
windows: successfully link tests

It links, with some hacks.
Tests still fail.

13 years agofix tests broken by previous commit
Evan Martin [Fri, 6 May 2011 21:12:10 +0000 (14:12 -0700)]
fix tests broken by previous commit

13 years agoMerge pull request #40 from fischman/master
Evan Martin [Fri, 6 May 2011 20:55:45 +0000 (13:55 -0700)]
Merge pull request #40 from fischman/master

CC vs CXX in ninja/gen-build-file.py

13 years agoUse $CXX instead of $CC when building C++ ninja source.
Ami Fischman [Fri, 6 May 2011 20:04:38 +0000 (13:04 -0700)]
Use $CXX instead of $CC when building C++ ninja source.

13 years agowindows: subprocess implementation for Windows
Evan Martin [Fri, 6 May 2011 18:46:11 +0000 (11:46 -0700)]
windows: subprocess implementation for Windows

Heavily based on a patch from Sergey Nenakhov <nenakhov.sergey@gmail.com>.

13 years agomore refactoring for windows
Evan Martin [Tue, 3 May 2011 17:56:37 +0000 (10:56 -0700)]
more refactoring for windows

13 years agoMerge pull request #38 from SByer/path_fix.
Evan Martin [Tue, 3 May 2011 23:26:46 +0000 (16:26 -0700)]
Merge pull request #38 from SByer/path_fix.

Needed more path components to build Chrome.

13 years agoNeeded more path components to build Chrome. One path component in an uncommon
Scott Byer [Tue, 3 May 2011 17:34:44 +0000 (10:34 -0700)]
Needed more path components to build Chrome. One path component in an uncommon
sub-library ended up with 27 slashes in it.

13 years agowindows: build win32 subprocess file on windows
Evan Martin [Tue, 3 May 2011 04:43:18 +0000 (21:43 -0700)]
windows: build win32 subprocess file on windows

13 years agorefactor subprocess to make it easier for windows port
Evan Martin [Tue, 3 May 2011 04:42:11 +0000 (21:42 -0700)]
refactor subprocess to make it easier for windows port

Rather than tracking stdout/stderr explicitly, just keep an opaque
pointer to a platform-specific 'stream' type.  Also provide API
to get at the process output.

13 years agogenerate mingw build files if requested
Evan Martin [Mon, 2 May 2011 03:33:16 +0000 (20:33 -0700)]
generate mingw build files if requested

Set NINJA_PLATFORM=mingw to get them.

13 years agofix unit test
Evan Martin [Mon, 2 May 2011 19:18:35 +0000 (12:18 -0700)]
fix unit test

13 years agoMerge pull request #37 from polrop/add-guidelines.
Evan Martin [Mon, 2 May 2011 18:41:53 +0000 (11:41 -0700)]
Merge pull request #37 from polrop/add-guidelines.

Add coding and documentation guidelines.

13 years agoMerge pull request #36 from polrop/test-clean-tool.
Evan Martin [Mon, 2 May 2011 18:39:45 +0000 (11:39 -0700)]
Merge pull request #36 from polrop/test-clean-tool.

Test clean tool

13 years agoMerge pull request #35 from polrop/add-warning-funcion.
Evan Martin [Mon, 2 May 2011 18:38:20 +0000 (11:38 -0700)]
Merge pull request #35 from polrop/add-warning-funcion.

Add a Warning() report function.

13 years agoMerge pull request #34 from polrop/fix-typo.
Evan Martin [Mon, 2 May 2011 18:37:56 +0000 (11:37 -0700)]
Merge pull request #34 from polrop/fix-typo.

Fix typo in documentation.

13 years agoAdd coding and documentation guidelines.
Nicolas Despres [Mon, 2 May 2011 15:56:45 +0000 (17:56 +0200)]
Add coding and documentation guidelines.

As discussed on the mailing list.

13 years agoThe cleaner can be used multiple times now.
Nicolas Despres [Mon, 2 May 2011 14:50:33 +0000 (16:50 +0200)]
The cleaner can be used multiple times now.

13 years agoReturn non-zero status when errors occur.
Nicolas Despres [Mon, 2 May 2011 14:46:31 +0000 (16:46 +0200)]
Return non-zero status when errors occur.

Clean all was not returning non-zero when an error occur (like when
failing to remove a directory). This patch fix the problem and add a test
for it.

13 years agoAdd a test for the clean tool.
Nicolas Despres [Mon, 2 May 2011 14:09:10 +0000 (16:09 +0200)]
Add a test for the clean tool.

It also fix a bug about the count of removed file reported.

13 years agoAdd a Warning() report function.
Nicolas Despres [Sun, 1 May 2011 15:31:50 +0000 (17:31 +0200)]
Add a Warning() report function.

Also fix sites where Error() was misused.

13 years agoFix typo in documentation.
Nicolas Despres [Sat, 30 Apr 2011 23:17:19 +0000 (01:17 +0200)]
Fix typo in documentation.

13 years agowindows: use abstractions in ninja.cc
Evan Martin [Mon, 2 May 2011 03:08:26 +0000 (20:08 -0700)]
windows: use abstractions in ninja.cc

13 years agowindows: getopt const clean hack
Evan Martin [Mon, 2 May 2011 03:08:01 +0000 (20:08 -0700)]
windows: getopt const clean hack

13 years agowindows: use millis abstraction instead of non-portable gettimeofday
Evan Martin [Mon, 2 May 2011 03:01:46 +0000 (20:01 -0700)]
windows: use millis abstraction instead of non-portable gettimeofday

13 years agoremove ROOT_HACK hack; it is unused
Evan Martin [Mon, 2 May 2011 02:53:50 +0000 (19:53 -0700)]
remove ROOT_HACK hack; it is unused

13 years agowindows: abstract around mkdir vs _mkdir
Evan Martin [Mon, 2 May 2011 02:43:51 +0000 (19:43 -0700)]
windows: abstract around mkdir vs _mkdir

13 years agowindows: use portable replacement of setlinebuf()
Evan Martin [Mon, 2 May 2011 02:37:41 +0000 (19:37 -0700)]
windows: use portable replacement of setlinebuf()

13 years agocheck in a script that generates build.ninja
Evan Martin [Mon, 2 May 2011 00:48:39 +0000 (17:48 -0700)]
check in a script that generates build.ninja

This will allow us to:
1) simplify bootstrap
2) generate windows-style paths on windows

It is also in line with ninja's philosophy: the build file syntax
is simple because the build files are easy to generate.

13 years agodrop "all" target from build
Evan Martin [Sun, 1 May 2011 02:55:11 +0000 (19:55 -0700)]
drop "all" target from build

13 years agouse refactored function to support implicit "all" target
Evan Martin [Sun, 1 May 2011 02:50:49 +0000 (19:50 -0700)]
use refactored function to support implicit "all" target

13 years agocanonicalize paths in refactored function
Evan Martin [Sun, 1 May 2011 02:46:33 +0000 (19:46 -0700)]
canonicalize paths in refactored function

13 years agorefactor out adding "all" to graph tool
Evan Martin [Sun, 1 May 2011 02:42:41 +0000 (19:42 -0700)]
refactor out adding "all" to graph tool