summaryrefslogtreecommitdiffstats
path: root/src/manifest_parser.h
Commit message (Collapse)AuthorAgeFilesLines
* Restore tolerance of self-referencing phony build statementsBrad King2017-09-081-1/+9
| | | | | | | | | | | | | | | | | | | | Since commit v1.8.0^2~3^2~1 (Teach RecomputeDirty to detect cycles in the build graph, 2015-11-13) we correctly reject self-referencing phony build statements like build a: phony a as cycles. Unfortunately this breaks support for CMake 2.8.12.x and 3.0.x because those versions incorrectly produce edges of this form (that we used to tolerate). In order to preserve compatibility with those CMake versions we need to restore tolerance of these edges. Add a special case to the manifest parser to filter out self-referencing inputs of phony edges of the form produced by those CMake versions. Warn by default, but add a `-w phonycycle={err,warn}` option to make it an error. Fixes: #1322
* Factor ManifestParser options into a structureBrad King2017-09-071-2/+7
| | | | | | This will allow more options to be added without updating everywhere that constructs a ManifestParser. Also extend the AssertParse function to take the options so tests can control them.
* Replace ManifestParser::FileReader with general FileReaderBrad King2016-02-031-5/+1
| | | | | | Avoid having two separate filesystem interfaces. Simplify test infrastructure by avoiding custom `ManifestParser::FileReader` implementations.
* dupe_edge_should_err from bool to enumScott Graham2016-01-271-2/+7
|
* Make dupbuild=err work in subninjaScott Graham2016-01-271-1/+1
|
* Add an opt-in flag to make duplicate edges an error (`-w dupbuild=err`).Nico Weber2015-03-241-2/+4
| | | | | This is step 1 on #931. Duplicated edges will become an error by default in the future.
* Make tests quiet again.Nico Weber2015-03-241-0/+2
|
* Fix diagnostic formatting regression caused by adaa91a33eb2cf23b88.Nico Weber2013-07-191-1/+1
| | | | | | | | | | | | | Ninja regressed to include a location for every file on the include stack for nested diagnostics, i.e. it would print: input:1: include.ninja:1: expected path Fix this so that it prints only the current file location, like it used to: include.ninja:1: expected path Also add a test for this.
* Remove a few unused includes.Nico Weber2013-05-121-3/+0
|
* block parse method doneRobert Iannucci2012-11-101-0/+1
|
* Rename parsers.* to manifest_parser.*Thiago Farina2012-07-091-0/+71
So it matches with the class name in there. Signed-off-by: Thiago Farina <tfarina@chromium.org>