aboutsummaryrefslogtreecommitdiff
path: root/testcase
Commit message (Collapse)AuthorAgeFilesLines
* Add --werror_find_emulator, --werror_overriding_commandsDan Willemsen2017-05-222-0/+84
| | | | | | | | | | | | | | | | | | | 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.
* Allow rules to specify custom ninja poolsDan Willemsen2016-11-051-0/+43
| | | | | | | | 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.
* Merge pull request #97 from danw/file_funcDan Willemsen2016-10-043-0/+167
|\ | | | | Implement the `file` function to read and write files
| * Implement the `file` function to read and write filesDan Willemsen2016-10-033-0/+167
| | | | | | | | | | | | | | 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.
* | Support marking variables as readonlyDan Willemsen2016-09-294-0/+159
|/ | | | | | | | | | | | | | | | | | | | | 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.
* Stop using .PHONY as a build target in phony.mkhamaji2016-09-201-3/+0
| | | | This testcase makes little sense.
* [C++] Allow targets which start with `='.Shinichiro Hamaji2016-06-302-0/+18
| | | | but with a kati-specific warning message. This fixes #83.
* Add testcases for commandline variablesShinichiro Hamaji2016-06-254-0/+117
|
* [C++] Do not evaluate recursive variable in ifdefShinichiro Hamaji2016-06-091-0/+8
| | | | This fixes #79
* [C++] Fix handling CRLF after a backslashShinichiro Hamaji2016-06-071-0/+1
| | | | This fixes #77
* [C++] Fix $(join) for #76Shinichiro Hamaji2016-06-071-1/+2
|
* [C++] $(eval) stops when first character is '#'Stefan Becker2016-06-021-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Handle nested define/endefShinichiro Hamaji2016-05-302-0/+30
| | | | This fixes #72.
* Update findleaves.py and add a few testcasesShinichiro Hamaji2016-05-302-10/+28
|
* Always sort glob resultsShinichiro Hamaji2016-05-032-0/+66
| | | | | This fixes issue #69. GNU make 3 sorts both for include and $(wildcard) while GNU make 4 doesn't.
* Skip 3 tests which fail with make 4Shinichiro Hamaji2016-05-023-0/+21
|
* Skip shell_var_with_args.mk with GNU make 4Shinichiro Hamaji2016-05-021-0/+12
|
* Use override in posix_var.mk to fix test with make 4Shinichiro Hamaji2016-05-021-1/+1
|
* Explicitly use SHELL=/bin/bashShinichiro Hamaji2016-04-282-3/+3
| | | | Also use override in tests which set $(SHELL)
* Fix multi_implicit_output_patterns.mk for GNU make 4Shinichiro Hamaji2016-04-271-0/+5
| | | | This fixes issue #67
* [C++] Handle .POSIX at eval timeShinichiro Hamaji2016-04-271-5/+4
| | | | | .POSIX pseudo target should change the behavior of $(shell). This also implements .POSIX for ckati's non-ninja mode.
* Add testcase/posix_var.mkShinichiro Hamaji2016-04-271-0/+22
| | | | For 187bf08e7fc847da6dc8482383fa5c8364f0ac50
* Add testcase/call_with_whitespace.mkShinichiro Hamaji2016-04-271-0/+9
| | | | For 167e1f750dfed276d50ad93ebf0ce0a1f6e6f9ac
* Add testcase/recursive_marker.mkShinichiro Hamaji2016-04-271-0/+3
| | | | For 952d4453bd9cee7f5ce6b2acb79954810bde66cd
* Add a test case to override_override.mkShinichiro Hamaji2016-04-271-0/+6
| | | | This is a testcase for 29b9b7470cc33c2b7c4264f254335d788ef04c26
* [C++] Strip a trailing \rShinichiro Hamaji2016-04-121-0/+7
|
* [C++] Error for missing endefShinichiro Hamaji2016-04-091-0/+4
| | | | A fix for https://github.com/google/kati/issues/55
* [C++] Error for missing endifShinichiro Hamaji2016-04-091-0/+3
| | | | A fix for https://github.com/google/kati/issues/55
* Add a whitespace after an open paren for subshellShinichiro Hamaji2016-03-171-0/+3
|
* Fix https://github.com/google/kati/issues/47Shinichiro Hamaji2016-03-151-0/+6
|
* Use subshell even when a command starts with '('Shinichiro Hamaji2016-03-151-0/+5
|
* Fix https://github.com/google/kati/issues/46Shinichiro Hamaji2016-03-101-0/+8
|
* [C++] Escape $(SHELL) in ninjaShinichiro Hamaji2016-02-191-1/+3
|
* [C++] Handle multi-word SHELL in $(shell)Shinichiro Hamaji2016-02-181-0/+7
|
* [C++] Fix DO_SORT_AND_UNIQ_AT_ONCEShinichiro Hamaji2016-02-151-0/+1
|
* [C++] Use LCP merge sort for $(sort)Shinichiro Hamaji2016-02-121-0/+6
| | | | | | | | | | 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
* [C++] Ninja: Detect and drop mkdir -p $(dir $@)Dan Willemsen2016-02-101-0/+42
| | | | | | | Ninja automatically creates the necessary output directories. This also fixes the logic to remove the empty '(true) &&' that was added for echo -> description detection.
* [C++] Handle multiple implicit patterns properlyShinichiro Hamaji2016-02-021-3/+18
| | | | | When there are multiple implicit patterns in a rule, recipe should be used only once.
* [C++] static_pattern.mk is passingShinichiro Hamaji2016-01-261-1/+0
|
* Do not use implicit wildcard in prerequisitesShinichiro Hamaji2016-01-261-0/+6
| | | | Also add a testcase for the failing case.
* [C++] Trim leading ./ in output patternsShinichiro Hamaji2016-01-261-0/+7
|
* [C++] Fix target specific variables in implicit rulesShinichiro Hamaji2016-01-261-2/+11
|
* [C++] Regenerate build.ninja when PATH was changedShinichiro Hamaji2015-12-091-0/+9
|
* An attempt to fix failures on Travis-CIShinichiro Hamaji2015-12-082-1/+8
|
* Show the failed reason in ninja_regen.shShinichiro Hamaji2015-12-071-5/+5
|
* [C++] Fail for semicolons without a ruleShinichiro Hamaji2015-12-074-1/+6
|
* [C++] Fail for newlines in expanded rule statementShinichiro Hamaji2015-12-071-0/+8
|
* Add implicit_pattern_rule_chain2.mkShinichiro Hamaji2015-12-011-0/+13
|
* [C++] Explicitly disallow $(shell) in other make constructsShinichiro Hamaji2015-11-301-0/+1
|
* [C++] Add a minimal support for .SUFFIXESShinichiro Hamaji2015-11-302-0/+18
| | | | Only disabling all suffix rules is supported.