| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using an open-source clang on OS X, one has to pass an isysroot
flag so that it can find system headers (stdio.h), like so:
CXX=path/to/clang++ CFLAGS="-isysroot $(xcrun -show-sdk-path)" ./configure.py
Previously, configure.py wouldn't quote envvars containing spaces, so
it'd rerun this as
CXX=path/to/clang++ CFLAGS=-isysroot /sysroot/path ./configure.py
which would then die because /sysroot/path wasn't excecutable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ninja currently uses googletest for testing. That makes building
ninja_test somewhat annoying since it requires that one passes
--with-gtest PATH to configure. It turns out just implementing the bits
of googletest that ninja uses needs about the same amount of code than
making the --with-gtest flag in configure.py work and making googletest
print test results in a way we want (!)
In addition to making configuration simpler, this also makes compiling
tests much faster: On my system, touching src/build_test.cc (the slowest
file to build in ninja) and rebuilding ninja_tests is twice as fast than
without this patch. Building all is noticeably faster too: 5.6s with
this patch, 9.1s without this patch (38% faster).
The most noticeable things missing: EXPECT_* and ASSERT_* don't support
streaming notes to them with operator<<, and for failing tests the lhs
and rhs are not printed. That's so that this header does not have to
include sstream, which slows down building ninja_test almost 20%.
If this turns out to be annoying, we can maybe add it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
All modern Linux kernels have ppoll() but sometimes
you might want to compile on something ancient.
This patch adds the possibility to force the use
of pselect() instead by passing --force-pselect
to bootstrap/configure.
The use of ppoll() is still default for Linux
and OpenBSD
|
|
|
|
|
|
| |
This catches the case where you use an older version on Ninja
to build a newer version of the Ninja code.
bootstrap.py always should work regardless.
|
| |
|
|
|
|
| |
The --as-needed default for ld would drop -lprofiler.
|
| |
|
|
|
|
| |
Hopefully will help flush out bugs.
|
|\
| |
| |
| |
| | |
This merges a new mechanism for tracking "depfile" dependencies that
is faster on all platforms but dramatically so on Windows.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
DepsLog is a compact serialization of dependency information.
It can be used to replace depfiles for faster loading.
|
| | |
|
|/
|
|
|
| |
This is just a proof-of-concept. The terminal printing logic should be
extracted from src/build.cc and then reused here.
|
|
|
|
|
| |
As best as I can tell this is the easiest way to customize
the asciidoc HTML output.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Tests always need GTEST_HAS_RTTI=0 set, but the code was only
setting it in the --with-gtest branch. Instead always use the
test-specific cflags when compiling test code.
|
| |
|
| |
|
| |
|
|
|
|
| |
Now passing through a valid SRPM, working in a standard way.
|
|
|
|
|
| |
Struct initializations such as those in `CLWrapper::Run` of file
`src/msvc_helper-win32.cc` causes MinGW GCC to spew warnings.
|
|
|
|
|
|
| |
Note: _WIN32 is used instead of WIN32 to enable builds with MSVC
IDE, Windows SDK non-IDE command line tools, and mingw/mingw-w64
based toolchains
|
|
|
|
|
|
| |
Now "ninja -t msvc ..." passes the "..." to the msvc helper main.
This drastically simplifies bootstrap and makes ninja a single
binary again.
|
| |
|
| |
|
|
|
|
|
| |
This pattern is safe as long as you're careful; we don't use it
very much.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I tried just fixing the code to pull in HACKING.md but it didn't show
up in the doxygen output; it's maybe too long to include anyway.
|
| |
|
| |
|
|
|
|
| |
Modify bootstrap etc. to make use of this binary.
|
| |
|
|
|
|
|
|
|
| |
(Note from Evan: this is landing Scott's code more or less verbatim
without a lot of analysis; it could maybe be simplified and reduced,
but it's only intended to be used in the MSVC helper so it's fine
to be experimental.)
|
| |
|
|
|
|
| |
This will be needed for performant builds on Windows.
|
| |
|