From 2b922df93fcea9e3fad8e24b39c7fe579085d3ac Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 29 Jul 2017 10:29:59 +0200 Subject: Refine utility library semantics with "see through" theme --- build2/cc/link.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'build2/cc/link.cxx') diff --git a/build2/cc/link.cxx b/build2/cc/link.cxx index 1a5424b..25b6a28 100644 --- a/build2/cc/link.cxx +++ b/build2/cc/link.cxx @@ -1038,11 +1038,12 @@ namespace build2 return; } - auto imp = [for_install] (const file&, bool la) + auto imp = [for_install] (const file& l, bool la) { // If we are not installing, then we only need to rpath interface - // libraries (they will include rpath's for their implementations). - // Otherwise, we have to do this recursively. + // libraries (they will include rpath's for their implementations) + // Otherwise, we have to do this recursively. In both cases we also + // want to see through utility libraries. // // The rpath-link part is tricky: ideally we would like to get only // implementations and only of shared libraries. We are not interested @@ -1052,7 +1053,8 @@ namespace build2 // we are going to rpath-link all of them which should be harmless // except for some noise on the command line. // - return for_install ? !la : false; + // + return (for_install ? !la : false) || l.is_a (); }; // Package the data to keep within the 2-pointer small std::function -- cgit v1.1