aboutsummaryrefslogtreecommitdiff
path: root/func.cc
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-11-12 17:05:32 -0800
committerColin Cross <ccross@android.com>2015-11-12 17:05:32 -0800
commitf23ae8caf11bf0d37d5669603224b76638fc74d4 (patch)
tree3d03862f08b132b3f202023c2a8bed7b9e2776c2 /func.cc
parent40307068f60d2d97c09d1fb2456ef67c7cc9c326 (diff)
downloadkati-f23ae8caf11bf0d37d5669603224b76638fc74d4.tar.gz
Add --no_ignore_dirty flag
Android needs to ignore dirty files under out/ when deciding to rebuild, except for the soong-generated out/Android.mk. Add a --no_ignore_dirty flag to override the pattern provided in --ignore_dirty. Change-Id: I8810963f4dff07b51187868c7afedb10c6a4cb2e
Diffstat (limited to 'func.cc')
-rw-r--r--func.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/func.cc b/func.cc
index dfa9a71..4de6de8 100644
--- a/func.cc
+++ b/func.cc
@@ -523,13 +523,15 @@ static vector<CommandResult*> g_command_results;
bool ShouldStoreCommandResult(StringPiece cmd) {
if (HasWord(cmd, "date") || HasWord(cmd, "echo"))
return false;
- if (g_flags.ignore_dirty_pattern) {
- Pattern pat(g_flags.ignore_dirty_pattern);
- for (StringPiece tok : WordScanner(cmd)) {
- if (pat.Match(tok))
- return false;
+
+ Pattern pat(g_flags.ignore_dirty_pattern);
+ Pattern nopat(g_flags.no_ignore_dirty_pattern);
+ for (StringPiece tok : WordScanner(cmd)) {
+ if (pat.Match(tok) && !nopat.Match(tok)) {
+ return false;
}
}
+
return true;
}