| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Android builds, we'd like to start removing some of the default
warnings and turn them into errors so that they can't come back.
For find emulator, we could attempt to check for errors, or silence
every find command in the tree, but that doesn't particularly scale,
especially when new code gets added with warnings. We've gone through
and fixed many of these, but they keep coming back, so add
--werror_find_emulator so that when we fix them all we can prevent them
from coming back.
Overriding commands is similar -- we really don't want multiple rules
defining a single output file. In ninja we've turned on -w dupbuild=err,
but if the paths happen to be identical the makefile overriding logic
kicks in first and presents a warning instead of an error. So add
--werror_overriding_commands in order to turn the make warning into an
error.
|
| |
|
|
|
|
|
|
| |
Setting .KATI_NINJA_POOL as a rule variable will set the corresponding
pool variable in the ninja file.
There's no way to define custom pools in Kati, Android is planning on
scaling the pool depth in a parent ninja file without re-running Kati.
|
| |\
| |
| | |
Implement the `file` function to read and write files
|
| | |
| |
| |
| |
| |
| |
| | |
This allows us to do file reading and writing without $(shell). Besides
being simpler, this also allows faster regen times, since we can just
stat the files to be read, or directly write to the files that need to
be written.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the magic variable .KATI_READONLY is set to a variable name, any
further attempts to modify the named variable will result in an error.
FOO := bar
.KATI_READONLY := FOO
FOO := baz # Error!
This is useful to make some global configuration readonly so that
another makefile cannot change it. In Android, we emulated this by
backing up some global configuration before including the Android.mk
files, then comparing the current values to the backed up values after
they've been included. But this means we don't know the location that
modified the variable, just that something did. And it's not perfect,
since the backup can also be changed.
Something similar to this could be implemented with `override`, but then
setting the variable silently fails, and it still could be overriden
with another override.
|
| |
|
|
| |
This testcase makes little sense.
|
| |
|
|
| |
but with a kati-specific warning message. This fixes #83.
|
| | |
|
| |
|
|
| |
This fixes #79
|
| |
|
|
| |
This fixes #77
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Regression when compared to GNU make behaviour.
Test case:
$ cat ../Makefile.comment-in-macro
.PHONY: all
define _rule
# comment
all:
:
endef
$(eval $(_rule))
$ make -f Makefile.comment-in-macro
:
$ ckati --ninja --ninja_dir . --gen_all_targets -f Makefile.comment-in-macro
*** No targets.
Fixes https://github.com/google/kati/issues/74
|
| |
|
|
| |
This fixes #72.
|
| | |
|
| |
|
|
|
| |
This fixes issue #69. GNU make 3 sorts both for include and
$(wildcard) while GNU make 4 doesn't.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Also use override in tests which set $(SHELL)
|
| |
|
|
| |
This fixes issue #67
|
| |
|
|
|
| |
.POSIX pseudo target should change the behavior of $(shell).
This also implements .POSIX for ckati's non-ninja mode.
|
| |
|
|
| |
For 187bf08e7fc847da6dc8482383fa5c8364f0ac50
|
| |
|
|
| |
For 167e1f750dfed276d50ad93ebf0ce0a1f6e6f9ac
|
| |
|
|
| |
For 952d4453bd9cee7f5ce6b2acb79954810bde66cd
|
| |
|
|
| |
This is a testcase for 29b9b7470cc33c2b7c4264f254335d788ef04c26
|
| | |
|
| |
|
|
| |
A fix for https://github.com/google/kati/issues/55
|
| |
|
|
| |
A fix for https://github.com/google/kati/issues/55
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
and use stable_sort on Mac.
On Linux:
LCPMS: 0.627s, sort: 3.37s, stable_sort: 1.79s, qsort: 1.95s
On Mac:
LCPMS: 1.583s, sort: 1.33s, stable_sort: 1.19s, qsort: 1.80s
|
| |
|
|
|
|
|
| |
Ninja automatically creates the necessary output directories.
This also fixes the logic to remove the empty '(true) &&' that was added
for echo -> description detection.
|
| |
|
|
|
| |
When there are multiple implicit patterns in a rule, recipe
should be used only once.
|
| | |
|
| |
|
|
| |
Also add a testcase for the failing case.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Only disabling all suffix rules is supported.
|