summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Convert RELEASING to Markdown and add instruction for GitHub releasereleaseJan Niklas Hasse2022-08-301-14/+22
|
* v1.11.1v1.11.1Jan Niklas Hasse2022-08-302-2/+2
|
* Fixbug: SIGFPE error when cpu.cfs_period_us = 0Yang Zongze2022-08-301-0/+2
| | | This will fix the issue (#2173).
* v1.11.0v1.11.0Jan Niklas Hasse2022-05-1563-922/+3434
|\
| * mark this 1.11.0.gitJan Niklas Hasse2022-05-151-1/+1
| |
| * Merge pull request #1827 from okhowang/cpu-limitJan Niklas Hasse2022-04-302-5/+197
| |\ | | | | | | Support cpu limit in docker
| | * feat: don't detect cpu if -j setokhowang(王沛文)2021-11-011-1/+20
| | |
| | * feat: support cpu limit by cgroups on linuxokhowang(王沛文)2021-11-011-2/+161
| | |
| | * feat: support cpu limit by job api on windowsokhowang(王沛文)2021-11-011-2/+16
| | |
| * | Merge pull request #2075 from digit-google/deterministic-inputsJan Niklas Hasse2022-03-226-8/+123
| |\ \ | | | | | | | | Make the output of `ninja -t inputs` deterministic
| | * | Make the output of `ninja -t inputs` deterministicDavid 'Digit' Turner2022-03-216-8/+123
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | This sorts the output of `ninja -t inputs` to make it deterministic and remove duplicates, and adds a regression test in output_test.py + Ensure all inputs are listed, not only explicit ones. + Document the `inputs` tool in doc/manual.asciidoc.
| * | Merge pull request #2087 from digit-google/msvc-toolJan Niklas Hasse2022-03-202-4/+35
| |\ \ | | | | | | | | Document the `msvc` tool
| | * | Ensure the `msvc` tool is built in all Win32 Ninja binaries.David 'Digit' Turner2022-03-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was only previously available when Ninja was built when `_MSVC` is defined (i.e. when compiling with the Microsoft compiler of with `clang-cl`). + Tag the tool as DEPRECATED
| | * | Document the `msvc` toolDavid 'Digit' Turner2022-03-111-0/+31
| |/ /
| * | Ignore Visual Studios foldersJan Niklas Hasse2022-03-051-0/+4
| | |
| * | Merge pull request #2088 from digit-google/fix-ReadFile-handle-leakJan Niklas Hasse2022-02-231-1/+2
| |\ \ | | | | | | | | Fix ReadFile() handle leak on read error on Windows.
| | * | Fix ReadFile() handle leak on read error on Windows.David 'Digit' Turner2022-02-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Small change to fix a file handle leak in case of error. Also return -EIO instead of -1 to signal read errors, since it is more consistent with what is happening here.
| * | | Merge pull request #2092 from scivision/cmake-pruneJan Niklas Hasse2022-02-211-1/+1
| |\ \ \ | | | | | | | | | | cmake: remove unnecessary install parameter
| | * | | cmake: remove unnecessary install parameterMichael Hirsch2022-02-201-1/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | The install(TARGETS ... DESTINATION bin) is not necessary as this subdirectory is implicit for executable targets. ref: https://cmake.org/cmake/help/v3.15/command/install.html
| * | | Merge pull request #2085 from randomascii/remove_bufferingJan Niklas Hasse2022-02-171-11/+0
| |\ \ \ | | |/ / | |/| | Don't disable stdout buffering on Windows
| | * | Don't disable stdout buffering on WindowsBruce Dawson2022-02-161-11/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Long ago ninja disabled stdout buffering. Since then much has changed and this appears to no longer be needed, while also being actively harmful. Disabling of stdout buffering is not needed because printing is done (in LinePrinter::Print) either with WriteConsoleOutput (which is unaffected by stdout buffering) or by printf followed by fflush. Meanwhile, the unbuffered printing in the printf case causes dramatic slowdowns which are most visible in dry-run builds, as documented in issue #2084. This fixes issue #2084, finishing off the incomplete buffering fix done in pull request #2031.
| * | Merge pull request #1730 from naarcini/masterJan Niklas Hasse2022-02-022-1/+37
| |\ \ | | | | | | | | Add 'inputs' tool to print out all inputs for a set of targets
| | * | Use correct version number for inputs toolJan Niklas Hasse2021-12-211-1/+1
| | | |
| | * | Add 'inputs' tool to print out all inputs for a set of targetsNicolas Arciniega2020-02-032-1/+37
| | | |
| * | | Merge pull request #2074 from gunechristensen/masterJan Niklas Hasse2022-02-021-1/+2
| |\ \ \ | | | | | | | | | | Filter lines ending with ".c++" in clparser
| | * | | Filter lines ending with ".c++" in clparserDESKTOP-8CNEPM9\sune2022-01-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Projects like cap n proto uses c++ extensions and generates a lot of status noise when running ninja.
| * | | | Merge pull request #2055 from swills/still-dirty-timeJan Niklas Hasse2022-01-281-1/+1
| |\ \ \ \ | | |/ / / | |/| | | Suggest possible cause for hitting cycle limit
| | * | | Suggest possible cause for hitting cycle limitSteve Wills2021-11-231-1/+1
| | | | |
| * | | | Merge pull request #1901 from MartinBP/windows_case_sensitive_foldersJan Niklas Hasse2022-01-201-3/+4
| |\ \ \ \ | | | | | | | | | | | | disk_interface: Improve the stat cache handling for case sensitive folders on Windows
| | * | | | disk_interface: Improve the stat cache handling for case sensitive folders ↵Martin Boye Petersen2021-01-021-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on Windows The path used as argument to FindFirstFileExA is no longer being converted to lowercase. By not converting the path to lower case, case sensitive folders will now be handled correctly. Case insensitive folders still works as expected because casing doesn't matter on those. All entries in the stat cache remains lowercase to avoid potential cache misses.
| * | | | | Merge pull request #2065 from maruel/re2c_no_versionJan Niklas Hasse2022-01-014-4/+4
| |\ \ \ \ \ | | | | | | | | | | | | | | Disable re2c from embedding the version number in the source file
| | * | | | | Disable re2c from embedding the version number in the source fileMarc-Antoine Ruel2021-12-314-4/+4
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The checked in sources (depfile_parser.cc and lexer.cc) have the re2c version embedded in it. The output didn't change since re2c 1.3, except for the different version number. A reproducible build would use a pinned version of re2c anyway, so there is no need to hardcode its value in the checked in generated files.
| * | | | | Merge pull request #2062 from maruel/typosJan Niklas Hasse2021-12-292-2/+2
| |\ \ \ \ \ | | | | | | | | | | | | | | Fix two typos
| | * | | | | Fix two typosMarc-Antoine Ruel2021-12-282-2/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | One in ninja_test usage text, the other in a unit test comment.
| * | | | | Merge pull request #1800 from colincross/validationsJan Niklas Hasse2021-12-2116-165/+676
| |\ \ \ \ \ | | |_|/ / / | |/| | | | Add validation nodes to ninja
| | * | | | Add validation nodes to ninjaColin Cross2021-10-1116-160/+663
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common problem in the Android build is inserting rules that perform some sort of error checking that doesn't produce any artifacts needed by the build, for example static analysis tools. There are a few patterns currently used, both of which have downsides. The first is to have a rule that depends on all of the static analysis results. This ensures they run, but requires running static analysis over everything, and not just the active parts of the build graph. The second is to insert the static analysis rule into the build graph between the artifact producing rule and anything that depends on it, often copying the artifact as the output of the static analysis rule. This increases the critical path of the build, often reducing parallelism. In the case of copying the artifact, it also wastes disk space. This patch adds "validation nodes" to edges in Ninja. A build statement can specify validation nodes using "|@" in the edge inputs. The validation nodes are not used as an input to the edge (the edge can run before the validation node is ready), but are added to the initial nodes of the build graph whenever the edge is part of the build graph. The edge that outputs the validation node can depend on the output of the edge that is being validated if desired. Test: ninja_test Change-Id: Ife27086c50c1b257a26509373199664680b2b247
| | * | | | Remove early return from Builder::AddTargetColin Cross2021-10-112-5/+13
| | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor Builder::AddTarget to remove an early return in a non-error case. The next CL will add code that needs to be executed even if the node is clean. Change-Id: I953dc54b60b635dd75d75f8f3931970faefc5ecf
| * | | | Fix crash when FakeCommandRunner is deleted twiceJan Niklas Hasse2021-11-161-0/+1
| | | | |
| * | | | Merge pull request #2040 from scivision/gnu-win32-clangJan Niklas Hasse2021-11-151-3/+1
| |\ \ \ \ | | | | | | | | | | | | minidump-win32 is needed by native GNU-like Clang on Windows
| | * | | | minidump-win32 is needed by native GNU-like Clang on WindowsMichael Hirsch2021-11-031-3/+1
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The entire minidump-win32.cc is guarded by ifdef _MSC_VER, so MSYS2/MinGW will just ignore the contents. fixes #2006
| * | | | Fix typos discovered by codespell (#2047)Christian Clauss2021-11-126-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | % [`codespell --count --ignore-words-list=fo .`](https://pypi.org/project/codespell/) ``` ./ninja/src/missing_deps.cc:119: dependecy ==> dependency ./ninja/src/includes_normalize-win32.cc:51: funcation ==> function ./ninja/src/eval_env.h:58: invokable ==> invocable ./ninja/src/missing_deps_test.cc:155: beacuse ==> because ./ninja/src/deps_log_test.cc:393: unparseable ==> unparsable ```
| * | | | xrange() was removed in Python 3 in favor of range() (#2036)Christian Clauss2021-11-111-4/+4
| | | | | | | | | | | | | | | https://portingguide.readthedocs.io
| * | | | Merge pull request #2045 from Arthur-Milchior/rules_documentationJan Niklas Hasse2021-11-111-3/+3
| |\ \ \ \ | | | | | | | | | | | | NF: clarify documentation's part about rules description
| | * | | | NF: clarify documentation's part about rules descriptionArthur Milchior2021-11-071-3/+3
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The word "eventually" was quite strange here and should probably removed. I suspect "potentially" was meant (which in French is "eventuellement", a standard false friend). In any way, after a quick look at the source/ninja message, I chose to even clarify this part of the doc, indicating that the `-d` option is required here.
| * | | | Fix typoDimitris Apostolou2021-11-081-1/+1
| |/ / /
| * | | Merge pull request #2031 from randomascii/buffering2Jan Niklas Hasse2021-10-042-5/+11
| |\ \ \ | | | | | | | | | | Disable stdout buffering in real_main
| | * | | Disable stdout buffering in real_mainBruce Dawson2021-10-012-5/+11
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously stdout buffering was disabled in the LinePrinter constructor. This worked for a long time but ultimately this side-effect caused a performance bug (issue #2018) in tools such as -t deps. Moving the disabling of buffering into real_main and only disabling buffering when a tool is not used makes the desired semantics clearer and restores the lost performance. This fixes issue #2018. It has been tested and a 10x speedup was seen relative to the tip-of-tree version.
| * | | Merge pull request #1964 from rascani/fix-phony-edgesNico Weber2021-10-015-6/+232
| |\ \ \ | | | | | | | | | | Set output mtime of phony edges to the latest inputs
| | * | | Set output mtime of phony edges to the latest inputsRichard Geary2021-08-025-6/+232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes issue #478. Observed: Real edges depending on a phony edge will not be marked as dirty or rebuilt if the phony's (real) inputs are updated. Expected: An edge should always be rebuilt if its inputs or transitive inputs are newer than the output's mtime. Change: Node::mtime_ was overloaded, 0 represented "does not exist". This change disambiguates it by adding Node::exists_. Then to fix the observed behaviour, Node::UpdatePhonyMtime was added to update the mtime if the node does not exist. Add tests BuildTest.PhonyUseCase# GraphTest.PhonyDepsMtimes. Unit tests will also test for always-dirty behaviour if a phony rule has no inputs.
| * | | | Remove -H CMake flag from README.md (#2023)Ronald2021-09-201-1/+1
| | | | |