diff options
Diffstat (limited to 'libbuild2')
-rw-r--r-- | libbuild2/install/rule.cxx | 3 | ||||
-rw-r--r-- | libbuild2/install/rule.hxx | 22 |
2 files changed, 18 insertions, 7 deletions
diff --git a/libbuild2/install/rule.cxx b/libbuild2/install/rule.cxx index d678940..3543286 100644 --- a/libbuild2/install/rule.cxx +++ b/libbuild2/install/rule.cxx @@ -288,6 +288,9 @@ namespace build2 filter (const scope* is, action, const target& t, const prerequisite& p) const { + if (p.is_a<exe> ()) + return nullptr; + const target& pt (search (t, p)); return is == nullptr || pt.in (*is) ? &pt : nullptr; } diff --git a/libbuild2/install/rule.hxx b/libbuild2/install/rule.hxx index ce60bb9..2ed162e 100644 --- a/libbuild2/install/rule.hxx +++ b/libbuild2/install/rule.hxx @@ -25,9 +25,10 @@ namespace build2 match (action, target&, const string&) const override; // Return NULL if this prerequisite should be ignored and pointer to its - // target otherwise. The default implementation ignores prerequsites - // that are outside of the installation scope (see install_scope() for - // details). + // target otherwise. + // + // The default implementation ignores prerequsites that are outside of + // the installation scope (see install_scope() for details). // // The prerequisite is passed as an iterator allowing the filter to // "see" inside groups. @@ -80,7 +81,9 @@ namespace build2 match (action, target&, const string&) const override; // Return NULL if this group member should be ignored and pointer to its - // target otherwise. The default implementation accepts all members. + // target otherwise. + // + // The default implementation accepts all members. // virtual const target* filter (action, const target&, const target& group_member) const; @@ -105,9 +108,14 @@ namespace build2 match (action, target&, const string&) const override; // Return NULL if this prerequisite should be ignored and pointer to its - // target otherwise. The default implementation ignores prerequsites - // that are outside of the installation scope (see install_scope() for - // details). + // target otherwise. + // + // The default implementation ignores prerequsites that are outside of + // the installation scope (see install_scope() for details). It also + // ignores exe{} prerequisites assuming an exe{} listed for a file + // target is there to execute (e.g., to generate that target) and + // normally should not be installed (an exe{} would typically be + // installed via the dir{./} alias). // // The prerequisite is passed as an iterator allowing the filter to // "see" inside groups. |