aboutsummaryrefslogtreecommitdiff
path: root/build2/parser.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-05-13 12:18:15 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-05-13 12:18:15 +0200
commit59692f8b9fa2b71711de78d07f031c4866024da4 (patch)
tree49962a069bbfcc424a19a524b223f7f82566f8c8 /build2/parser.cxx
parentcff78d388133e50d4b930915ae0bb2d0cafe1248 (diff)
Remove order dependence in ad hoc group handling
Also, don't match group_recipe since we neither execute nor access the state.
Diffstat (limited to 'build2/parser.cxx')
-rw-r--r--build2/parser.cxx23
1 files changed, 5 insertions, 18 deletions
diff --git a/build2/parser.cxx b/build2/parser.cxx
index 27910b7..06be54a 100644
--- a/build2/parser.cxx
+++ b/build2/parser.cxx
@@ -985,6 +985,8 @@ namespace build2
// Add as an ad hoc member at the end of the chain skipping duplicates.
//
{
+ // @@ ADHOC: call add_adhoc_member()?
+ //
const_ptr<target>* mp (&target_->member);
for (; *mp != nullptr; mp = &(*mp)->member)
{
@@ -1004,26 +1006,11 @@ namespace build2
continue; // Duplicate.
}
+ // @@ ADHOC: What if it's something like .pdb where the group derives a
+ // custom extension... Hm...
+ //
if (file* ft = at.is_a<file> ())
ft->derive_path ();
-
- // Pre-match this target. Feels fuzzy/hacky.
- //
- // See match_recipe() and set_recipe() that it calls for the
- // approximate semantics we want to achieve.
- //
- // @@ Can such a target be used as a prerequisite? Feels like
- // will require a "permanenly applied" task_count value? Maybe
- // special "adhoc" value?
- //
- {
- auto& i (at.state.data[0]); // inner opstate
- auto& o (at.state.data[1]); // outer opstate
-
- i.rule = o.rule = nullptr;
- i.recipe = o.recipe = group_recipe;
- i.state = o.state = target_state::group;
- }
}
}