Jan Niklas Hasse
100efbaf55
Merge pull request #1916 from scivision/check_msg
...
cmake: add browse check status
2021-02-23 23:01:06 +01:00
Michael Hirsch
aa9317e42f
cmake: add browse check status
2021-02-23 14:36:15 -05:00
Jan Niklas Hasse
5c93343406
Merge pull request #1331 from ilor/missingdeps3
...
missingdeps tool, take 2
2021-02-23 10:08:48 +01:00
Jan Niklas Hasse
ec8de9c247
Merge pull request #1915 from jhasse/windows-utf8
...
Use UTF-8 on Windows 10 Version 1903, fix #1195
2021-02-23 10:00:23 +01:00
Tomasz Śniatowski
6c89e596ee
missingdeps: use nested maps for edge adjacency cache
...
In my tests, nested maps outperform a large map of pairs by 10-20% on a
sample Chromium missingdeps run, and are arguably simpler due to fewer
ifdefs needed.
2021-02-22 23:48:58 +01:00
Tomasz Śniatowski
b94a891ac9
missingdeps: add exception for targets that dep on build.ninja
...
A "missing dep path" to build.ninja is a false positive, skip reporting it.
2021-02-22 23:48:58 +01:00
Tomasz Śniatowski
bc69a640de
Add manual entry about the missingdeps tool
2021-02-22 23:48:58 +01:00
Tomasz Śniatowski
3030254733
Add a -t missingdeps tool to detect some classes of build flakes
...
The tool looks for targets that depend on a generated file, but do not
properly specify a dependency on the generator. It needs to be run after
a successful build, and will list all potential flakes that may have
broken the build, but didn't due to accidental build step ordering.
The search relies on the correctness of depfile and generator output
information, but these are usually easier to get right than dependencies.
The errors found can usually be verified as actual build flakes by trying
to build the listed problematic files alone in a clean build directory.
Such builds usually fail with a compile job lacking a generated file.
There is some overlap between this tool and 'gn check', but not everyone
uses gn, not everyone using gn uses gn check, and most importantly, gn
check is more about modularity, and less about actual build-time deps
without flakes.
The tool needs to be run after a build completes and depfile data is
collected. It may take several seconds to process, up to a dozen or
two on a large, chromium-sized build.
2021-02-22 23:48:58 +01:00
Tomasz Śniatowski
d0489c3863
Refactor depfile loading in preparation for the missingdeps tool
...
Extract an usable helper to load depfile dependencies without adding them
to the graph.
2021-02-22 23:48:58 +01:00
Jan Niklas Hasse
c83f00c8a6
Merge pull request #1911 from eszlari/cmake-cleanup
...
cmake: add_compile_options / PROJECT_SOURCE_DIR
2021-02-22 23:31:17 +01:00
Jan Niklas Hasse
e77c5615b9
Merge pull request #1899 from colincross/status_for_serialize
...
Status changes to support frontends
2021-02-22 23:06:28 +01:00
Jan Niklas Hasse
00459e2b44
Use UTF-8 on Windows 10 Version 1903, fix #1195
...
Allows Ninja to use descriptions, filenames and environment variables
with characters outside of the ANSI codepage on Windows. Build manifests
are now UTF-8 by default (this change needs to be emphasized in the
release notes).
WriteConsoleOutput doesn't support UTF-8, but it's deprecated on newer
Windows 10 versions anyway (or as Microsoft likes to put it: "no longer
a part of our ecosystem roadmap"). We'll use the VT100 sequence just as
we do on Linux and macOS.
https://docs.microsoft.com/en-us/windows/uwp/design/globalizing/use-utf8-code-page
https://docs.microsoft.com/en-us/windows/console/writeconsoleoutput
https://docs.microsoft.com/de-de/windows/console/console-virtual-terminal-sequences
2021-02-17 21:59:20 +01:00
Jan Niklas Hasse
9c66e69846
Merge pull request #1913 from bradking/windows-remove
...
Restore toleration of missing to-be-deleted files on Windows
2021-02-12 20:28:56 +01:00
Brad King
5392e0e7bf
disk_interface: Restore toleration of missing files in RemoveFile on Windows
...
Revise the logic from commit 2d7f7e55
(Delete read-only files on
Windows, too, 2020-12-07) to check if `GetFileAttributes` or
`DeleteFile` failed due either variant of the file/path-not-found error.
Issue: #1886
2021-02-12 11:47:12 -05:00
Brad King
c7e3e5ef45
disk_interface: Do not query bits of INVALID_FILE_ATTRIBUTES
2021-02-12 11:44:45 -05:00
Brad King
a33b813058
disk_interface: Improve wrapping of comment in RemoveFile
2021-02-12 11:44:38 -05:00
Jan Niklas Hasse
b0662970ba
GitHub Actions: Test both Debug and Release with MSVC
2021-02-12 11:08:55 +01:00
Jan Niklas Hasse
a999fdb0d8
Merge pull request #1892 from jhasse/windows-readonly
...
Delete read-only files on Windows, too
2021-02-10 08:51:56 +01:00
Peter Eszlari
6118f74838
cmake: add_compile_options / PROJECT_SOURCE_DIR
2021-02-09 13:57:23 +01:00
Colin Cross
ad3d29fb53
Put builder output through status interface
...
Send all output after manifest parsing is finished to the Status
interface, so that when status frontends are added they can handle
build messages.
2021-02-05 12:08:17 -08:00
Jan Niklas Hasse
9216c31f29
Merge pull request #1905 from korli/haiku
...
Add Haiku support.
2021-01-28 23:42:13 +01:00
Augustin Cavalier
fba4f7b1e5
Add Haiku support.
2021-01-28 12:32:47 +01:00
Jan Niklas Hasse
68f09b03c0
Merge pull request #1904 from remexre/master
...
Adds dyndep support to ninja_syntax.py.
2021-01-13 17:07:49 +01:00
Nathan Ringo
c161199646
Adds dyndep support to ninja_syntax.py.
2021-01-12 10:36:45 -08:00
Jan Niklas Hasse
fb824d27b3
Merge pull request #1674 from cameron314/bugfix/core-count
...
Fixed processor count detection on Windows
2021-01-01 23:01:23 +01:00
Cameron
4b07ca35eb
Added preprocessor if to clarify processor count workaround code is only needed on 32-bit builds (following code review)
2020-12-31 14:45:59 -05:00
Colin Cross
589f5b2497
Turn BuildStatus into an interface
...
Make BuildStatus an abstract interface, and move the current
implementation to StatusPrinter, to make way for a serialized
Status output.
2020-12-18 12:38:29 -08:00
Colin Cross
045890cee3
Simplify running edges status
...
Store the number of running edges instead of trying to compute it
from the started and finshed edge counts, which may be different
for starting and ending status messages. Allows removing the status
parameter to PrintStatus and the EdgeStatus enum.
2020-12-18 12:38:29 -08:00
Colin Cross
dede9ac780
Move edge time from Status to Builder
...
The times that end up in the build log currently originate in the
status printer, and are propagated back out to the Builder. Move
the edge times into the Builder instead, and move the overall start
time into NinjaMain so it doesn't get reset during manifest
rebuilds.
2020-12-18 12:38:25 -08:00
Jan Niklas Hasse
68f971460b
Merge pull request #1893 from AdamKorcz/fuzz1
...
Added fuzzer with build script and seed
2020-12-11 12:08:22 +01:00
Jan Niklas Hasse
91f4a498b2
Merge pull request #1894 from gjasny/modern-add-test-signature
...
cmake: Use modern add_test signature
2020-12-11 12:06:59 +01:00
Gregor Jasny
721db105e6
cmake: Use modern add_test signature
...
Using this modern signature makes CMake/CTest use the effective
binary path and works also with multi-config generators which put
binaries in extra `Release` folders.
2020-12-11 08:36:26 +01:00
AdamKorcz
365a149069
Created oss-fuzz folder and moved build.sh and sample ninja file into it
2020-12-10 18:00:26 +00:00
AdamKorcz
9c801316ba
Added fuzzer with build script and seed
2020-12-08 20:18:29 +00:00
Jan Niklas Hasse
2d7f7e55c0
Delete read-only files on Windows, too
...
Fixes main complaint of #1886 .
2020-12-07 19:46:10 +01:00
Jan Niklas Hasse
58f77f972b
Ignore new clangd cache directory, too
2020-12-06 15:49:29 +01:00
Jan Niklas Hasse
507db2c022
Merge pull request #1791 from neheb/exp
...
[clang-tidy] add explicit to single argument constructors
2020-12-06 12:15:55 +01:00
Jan Niklas Hasse
e664814b6a
Merge pull request #1790 from neheb/bool
...
[clang-tidy] simplify boolean expression
2020-12-06 12:15:06 +01:00
Rosen Penev
0351d68f0a
[clang-tidy] add explicit to single argument constructors
...
Found with google-explicit-constructor
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-05 22:15:54 -08:00
Rosen Penev
7c36b8871a
[clang-tidy] simplify boolean expression
...
Found with readability-simplify-boolean-expr
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-05 15:47:18 -08:00
Jan Niklas Hasse
deb542192b
Merge pull request #1873 from jhasse/remove-travis
...
Replace Travis CI with GitHub Actions
2020-12-05 23:41:18 +01:00
Jan Niklas Hasse
7705fedfaf
Merge pull request #1876 from orgads/msvc-warnings
...
Suppress MSVC warnings
2020-12-05 23:41:02 +01:00
Jan Niklas Hasse
160531764c
Ignore clangd files
2020-12-04 13:05:25 +01:00
Jan Niklas Hasse
629f926294
Merge pull request #1866 from jhasse/unique-edge-ids
...
Add unique IDs to edges
2020-12-03 18:37:09 +01:00
Jan Niklas Hasse
7193fb7c1e
Merge pull request #1792 from neheb/dec
...
[clang-tidy] fix inconsistent declarations
2020-12-03 10:55:34 +01:00
Rosen Penev
76ecd30541
[clang-tidy] fix inconsistent declarations
...
Found with readability-inconsistent-declaration-parameter-name
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-02 15:30:15 -08:00
Jan Niklas Hasse
7cff4770b5
Merge pull request #1887 from mjguzik/freebsd_cpuset
...
Add FreeBSD support to GetProcessorCount
2020-12-01 10:01:37 +01:00
Mateusz Guzik
9d4ea5a8e8
Add FreeBSD support to GetProcessorCount
2020-11-30 23:01:41 +00:00
Jan Niklas Hasse
ed056bdd8c
mark this 1.10.2.git
2020-11-28 12:21:05 +01:00
Jan Niklas Hasse
242b7dd900
GitHub Actions: Build Universal Binary for macOS
2020-11-23 17:32:13 +01:00