| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The pull request that introduced building from a directory other
than the source dir, https://github.com/ninja-build/ninja/pull/979,
made it so all source paths are effectively absolute paths. This
change restores the old behavior in the case when you are building
in the source. See the comments there.
|
|
|
|
|
| |
Confusingly, $sourcedir is the path to the root of the repository,
*not* the path to the src/ directory.
|
| |
|
|
|
|
|
|
| |
- Fix the manual build rules (missing the .xsl as an input).
- Add a README describing how the docs build works.
- Add rules that generate PDF, just 'cause we can.
|
|\
| |
| | |
Support for AIX
|
| |
| |
| |
| | |
AIX does not support rebuilding ninja in-place from the bootstrapped ninja.
|
| |
| |
| |
| |
| |
| |
| | |
AIX supplies getopt but not getopt_long.
We can't use the embedded getopt implementation, since the constness of its
arguments doesn't match the AIX system routine.
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Both clang and gcc understand -fdiagnostics-color, so use that flag name.
(This will disable colored diagnostics for clangs older than LLVM 3.3,
but that is several years old by now.)
|
| |
|
| |
|
|
|
|
|
| |
Required for Fedora infrastructure so that the commands used to build
ninja are logged.
|
|
|
|
| |
Patch from @TheOneRing!
|
| |
|
|\
| |
| | |
Make browse detection consistent with other platform checks.
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
| |
It was only needed by gtest, which is no longer used.
(Intesting note: I checked when the -lpthread flag was added, and it's
been around since the first revision of build.ninja, which used to be
checked in before configure.py existed. Back then, it looks like '@' was
used to dereference built-in variables, and build outputs were also
prefixed by '@'!).
|
| |
|
|
|
|
|
| |
With this code all in one place, it's easier to spot unused code and
simplification opportunities.
|
|
|
|
|
|
| |
Instead of bootstrapping through a separate script, instead make
configure.py able to either generate a build.ninja *or* just execute
all the computed commands to build a ninja binary.
|
|\
| |
| | |
Fix building on Solaris.
|
| |
| |
| |
| |
| |
| | |
"SunOS" and "Solaris" are the same thing these days, so make them go
down the same code paths. In particular, the browse feature was omitted
on solaris but not sunos5, causing trouble for some folks (see #838).
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No behavior change on most platforms. On solaris, -t browse was compiled in
in ninja.cc but browse.cc wasn't compiled in, which probably means that building
on Solaris didn't work. It might be better now.
This also makes browse.cc automatically not included in bootstrap builds;
previously this was done manually through the NINJA_BOOTSTRAP check.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|