From f62ff2e840fd92a03b4a3298de938d426f8b5c7a Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 14 Aug 2015 15:47:34 +0200 Subject: Fix several issues in outer operation recipe override logic --- build/bin/rule.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'build/bin') diff --git a/build/bin/rule.cxx b/build/bin/rule.cxx index 8507497..a09bffd 100644 --- a/build/bin/rule.cxx +++ b/build/bin/rule.cxx @@ -79,7 +79,15 @@ namespace build match_only (a, *t.so); } - return match_result (t, &type); + match_result mr (t, &type); + + // If there is an outer operation, indicate that we match + // unconditionally so that we don't override ourselves. + // + if (a.outer_operation () != 0) + mr.recipe_action = action (a.meta_operation (), a.operation ()); + + return mr; } recipe lib_rule:: -- cgit v1.1