| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
The entire minidump-win32.cc is guarded by ifdef _MSC_VER, so
MSYS2/MinGW will just ignore the contents.
fixes #2006
|
| |
|
|
|
|
|
|
| |
Just because `unistd.h` exists does not mean it has the APIs that are
needed. This occurs when cross-compiling using Fedora's packaged MinGW
toolchain.
|
| |
|
|\
| |
| | |
missingdeps tool, take 2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
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
|
|\ \
| | |
| | | |
cmake: add_compile_options / PROJECT_SOURCE_DIR
|
| |/ |
|
|/
|
|
|
|
| |
Make BuildStatus an abstract interface, and move the current
implementation to StatusPrinter, to make way for a serialized
Status output.
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Suppress MSVC warnings
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* D9025: overriding '/GR' with '/GR-'
* C4100: 'argc': unreferenced formal parameter
* C4244: '=': conversion from 'int' to 'char', possible loss of data (on tolower)
* C4267: 'initializing': conversion from 'size_t' to 'unsigned int', possible loss of data
* C4702: unreachable code (after Fatal)
* C4706: assignment within conditional expression
* C4996: 'strcpy': This function or variable may be unsafe
|
|\ \
| | |
| | | |
Fix building on AIX
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Both hash_collision_bench and manifest_parser_perftest crash on AIX with
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
IOT/Abort trap (core dumped)
32-bit AIX applications by default allocates only a single 256M segment
for stack and heap for 32-bit applications, which is insufficient for
these tests. When building these tests on AIX in 32-bit mode, increase
the max number of segments so they will run without crashing.
|
| | | |
|
| |/ |
|
|/
|
|
| |
multi-configuration generators for building ninja.
|
|
|
|
|
| |
Not all users have `cmake` on their PATH and this causes a build
failure.
|
| |
|
| |
|
|
|
|
| |
option provided by cmake's Module CTest
enable_testing() is call by this Module
|
|
|
|
|
|
|
| |
Browse mode requires a number of POSIX features to be available.
This commit adds configure-time checks that the 'unistd.h' header is
available and that the `inline.sh` script executes successfully. If the
checks pass then browse mode is enabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes ninja-build/ninja#1822, fixes ninja-build/ninja#1853
Adds support for `ninja -t browse` to CMake builds.
The platform support logic is copied from configure.py, so Windows,
Solaris and AIX are treated as 'unsupported' platforms. All other
platforms are assumed to be supported.
As discussed in #1853, when built via CMake the `ninja` executable
looks for a binary called `python` in the current path, in order to
launch the "browse" mode. The behaviour differs from that of the
configure.py script, which looks for a python executable that has the
*same name* as the python executable that invoked the configure script.
|
|
|
|
|
|
|
|
|
| |
CMAKE_SOURCE_DIR refer to the full path to the top level of the current
CMake source tree
PROJECT_SOURCE_DIR refer to the source directory of the last call to the
project() command made in the current directory scope or one of its parents
when ninja is use as a subproject, the build fail because of this.
|
| |
|
| |
|
|
|
|
|
| |
cmake_minimum_required(VERSION 3.15) implicitly sets to NEW all
policies from CMP0094 and older
|
| |
|
| |
|
|
|
|
| |
They are only built and not run with CTest
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|