summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Allow + in filenames without escapingNico Weber2014-05-302-2/+3
| | | | | | Due to #690, file.c++ used to be escaped. + seems as safe as -, so allow it to not be escaped, to keep compile command lines with a fairly common extension slightly cleaner.
* Make "depfile=$out.d" work if $out contains escaped characters, rspfile too.Nico Weber2014-05-216-30/+94
| | | | | | | | | | | | | | Fixes #730. This has always been broken, but due to #690 more paths are now escaped (e.g. paths containing + characters, like file.c++). Also see discussion in #689. The approach is to give EdgeEnv an enum deciding on whether or not to escape file names, and provide functions that evaluate depfile and rspfile with that set that to kNoEscape. (depfile=$out.d doesn't make sense on edges with multiple outputs.) This should be relatively safe, as $in and $out can't be used on edges, only on rules (#687).
* CleanTest cleanups:Nico Weber2014-05-211-6/+2
| | | | | * $in only makes sense on rules, not edges (see issue #687) * Remove unneccesary clear() line at end of test
* Merge pull request #764 from nico/winconsoleNico Weber2014-05-185-22/+25
|\ | | | | Implement pool=console support on Windows.
| * win console wip: Fix comments based on review feedback.Nico Weber2014-05-182-2/+2
| |
| * win console wip: resolve FIXMENico Weber2014-05-142-1/+2
| |
| * win console wip: ctrl-c should reach commands running in console poolsNico Weber2014-05-131-1/+4
| |
| * win console wip: enable testNico Weber2014-05-131-4/+2
| |
| * wip for console pool on windowsNico Weber2014-05-134-17/+18
| |
* | Allow paths with '{' '}' in depfilesMaxim Kalaev2014-05-073-6/+10
| |
* | compdb: check that inputs is not emptyBen Boeckel2014-05-051-0/+2
| |
* | Accept \r\n line endings in depfiles.Nico Weber2014-05-013-8/+21
|/ | | | Fixes #752.
* Make manifest_parser_perftest build on Windows.Nico Weber2014-04-271-1/+3
|
* Merge pull request #714 from pcc/console-poolNico Weber2014-04-1713-43/+196
|\ | | | | Introduce the "console" pool
| * Introduce the "console" poolPeter Collingbourne2014-02-0313-43/+196
| | | | | | | | | | | | | | This is a pre-defined pool with a depth of 1. It has the special property that any task in the pool has direct access to the console. This can be useful for interactive tasks or long-running tasks which produce status updates on the console (such as test suites).
* | Merge pull request #715 from nico/lazyenvNico Weber2014-04-171-4/+5
|\ \ | | | | | | Allocate per-edge BindingEnvs lazily.
| * | Allocate per-edge BindingEnvs lazily.Nico Weber2014-02-111-4/+5
| |/ | | | | | | | | | | | | In chrome, only 2000 of 22000 build edges have bindings. A BindingEnv is 64 bytes, so allocating these only when needed saves a bit over 1 MB of memory. Since env chains are shorter for lookups, builds also become a tiny bit faster.
* | Manifest perftest: Try to make it build on Linux.Nico Weber2014-04-171-0/+1
| |
* | Manifest perftest: Pull manifest parsing into own function.Nico Weber2014-04-171-17/+20
| |
* | Manifest perftest: Also measure command evaluation time.Nico Weber2014-04-171-5/+31
| |
* | Add a simple manifest parsing perftest.Nico Weber2014-04-171-0/+82
| |
* | Rename parser_perftest to depfile_parser_perftest.Nico Weber2014-04-161-0/+0
| |
* | CLParser shouldn't read stderrScott Graham2014-04-142-1/+8
| |
* | Merge pull request #699 from mostynb/avoid_useless_mkdir_failureNico Weber2014-04-071-0/+3
|\ \ | | | | | | don't Fail if trying to mkdir when the dir already exists
| * | don't Fail if trying to mkdir when the dir already existsMostyn Bramley-Moore2014-01-071-0/+3
| | |
* | | Support both slashes on Windows when making output dirsScott Graham2014-04-032-6/+20
| |/ |/|
* | Don’t unnecessarily escape backslashes in Win32 pathsNicholas Hutchinson2014-01-082-1/+8
|/ | | | Under ::CommandLineToArgvW() rules, the backslash character only gets special treatment if it’s immediately followed by a double quote. So, when checking to see if a string needs Win32 escaping, it’s sufficient to check for the presence of a double quote character. This allows paths like "foo\bar" to be recognised as “sensible” paths, which don’t require the full escaping.
* Merge pull request #697 from nico/gclogsNico Weber2014-01-0711-24/+176
|\ | | | | Remove old outputs from build log and deps log during recompaction.
| * Make BuildLogUser reference constant.Nico Weber2014-01-078-13/+14
| |
| * Add a comment.Nico Weber2014-01-041-0/+7
| |
| * Rename "IsDead" to "BuildLogUser".Nico Weber2014-01-046-21/+30
| |
| * Move duplicated code into a helper function.Nico Weber2014-01-043-14/+20
| |
| * Add a test for collection of dead log entries.Nico Weber2014-01-041-0/+40
| |
| * Add a test for collection of dead deps entries.Nico Weber2014-01-032-1/+52
| |
| * Fix DepsLogTest.Recompact by making sure outputs aren't garbag-collected.Nico Weber2014-01-021-0/+10
| |
| * Make tests compile (one fails atm).Nico Weber2014-01-022-8/+11
| |
| * Remove dead entries in .ninja_log and .ninja_deps while recompacting.Nico Weber2014-01-024-8/+33
| | | | | | | | | | | | | | | | | | | | For .ninja_deps, remove objects that have no in-edges or whose in-edges do not have a "deps" attribute. (This matches the behaviour of `-t deps`). BuildLog doesn't know about state, so let its recompact method take delegate that decides is a path is life or not, and implement it in NinjaMain.
* | Merge pull request #690 from nickhutchinson/feature/escape-paths-properlyNico Weber2014-01-066-12/+152
|\ \ | |/ |/| More robust escaping of $in, $out paths
| * More robust escaping of $in, $out pathsNicholas Hutchinson2014-01-066-12/+152
| | | | | | | | | | | | In summary: don’t escape if the path doesn’t contain problematic characters, otherwise: - Shell: enclose string in single quotes, escape embedded single quotes with the magic quote-backslash-quote sequence - Win32: Escape double quotes by doubling the number of consecutive backslashes that precede them (if any) and adding one more. Finally, double the number of trailing backslashes, and enclose the whole thing in double quotes.
* | Fix additional range in character class.Nico Weber2013-12-132-30/+43
|/ | | | | | | | The range was added in 7ab6dcbdb6447861eefafc47fc3e10f3273cede2, but that change only tried to add ! to the character class. Fix by moving '-' to the end of the class. Fixes #694.
* Add a test that shows that there is a single global namespace for rules.Nico Weber2013-10-271-0/+15
|
* Minor style fixes. No functionality change.Nico Weber2013-10-194-8/+13
|
* Merge pull request #665 from syntheticpp/localized-showincludeNico Weber2013-10-187-26/+41
|\ | | | | add deps_prefix for localized /showIncludes' output parsing
| * add deps_prefix for localized /showIncludes' output parsingPeter Kümmel2013-10-187-26/+41
| |
* | Fix compilation on VS2013Scott Graham2013-10-183-0/+4
|/
* mark this 1.4.0.git, update RELEASINGEvan Martin2013-09-121-1/+1
|
* add -d keeprsp to preserve @rsp files on success on windowsScott Graham2013-09-105-3/+12
|
* Simplify.Nico Weber2013-09-081-3/+2
|
* Fix for build test for BuildWithDepsLogTest.RestatMissingDepfileDepslogRichard Geary2013-09-071-1/+4
|
* Make depslog v1->v3 message less scary.Nico Weber2013-09-061-1/+1
| | | | See the comment 5 lines up for details.