From 8d1735e04faadaa6765c71b12a96188e6d56c9fa Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 14 Feb 2018 12:27:11 +0200 Subject: Don't ignore objX{} and bmiX{} prerequisites in cc::link_rule --- build2/cc/link-rule.cxx | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to 'build2/cc/link-rule.cxx') diff --git a/build2/cc/link-rule.cxx b/build2/cc/link-rule.cxx index cd355c6..c59597a 100644 --- a/build2/cc/link-rule.cxx +++ b/build2/cc/link-rule.cxx @@ -630,12 +630,15 @@ namespace build2 // else { - // @@ Temporary hack until we get the default outer operation for - // update. This allows operations like test and install to skip - // such tacked on stuff. - // - if (current_outer_oif != nullptr) - continue; + if (!p.is_a () && !p.is_a ()) + { + // @@ Temporary hack until we get the default outer operation + // for update. This allows operations like test and install to + // skip such tacked on stuff. + // + if (current_outer_oif != nullptr) + continue; + } pt = &p.search (t); } @@ -792,8 +795,7 @@ namespace build2 if (p1.is_a () || p1.is_a () || p1.is_a () || p1.is_a () || p1.is_a () || - p1.is_a () || - p1.is_a () || p1.is_a () || p1.is_a () || + p1.is_a () || p1.is_a () || (p.is_a (mod ? *x_mod : x_src) && x_header (p1)) || (p.is_a () && p1.is_a ())) continue; @@ -1555,16 +1557,14 @@ namespace build2 // if (modules) { - if (pt->is_a () || pt->is_a () || pt->is_a ()) + if (pt->is_a ()) pt = pt->member; } const file* f; bool la (false), ls (false); - if ((f = pt->is_a ()) || - (f = pt->is_a ()) || - (f = pt->is_a ()) || + if ((f = pt->is_a ()) || (!lt.static_library () && // @@ UTL: TODO libua to liba link. ((la = (f = pt->is_a ())) || (la = (f = pt->is_a ())) || @@ -1841,16 +1841,14 @@ namespace build2 if (modules) { - if (pt->is_a () || pt->is_a () || pt->is_a ()) + if (pt->is_a ()) pt = pt->member; } const file* f; bool la (false), ls (false); - if ((f = pt->is_a ()) || - (f = pt->is_a ()) || - (f = pt->is_a ()) || + if ((f = pt->is_a ()) || (!lt.static_library () && // @@ UTL: TODO libua to liba link. ((la = (f = pt->is_a ())) || (la = (f = pt->is_a ())) || -- cgit v1.1