aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/install.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-07-29 10:32:36 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-07-29 10:32:36 +0200
commit682836daacdd3dc486187c9d60479b372895a470 (patch)
treea042ab0e46052436b08355f43fd54d9055ce9b82 /build2/cc/install.hxx
parent2b922df93fcea9e3fad8e24b39c7fe579085d3ac (diff)
Implement "see through" installation semantics for utility libraries
Diffstat (limited to 'build2/cc/install.hxx')
-rw-r--r--build2/cc/install.hxx23
1 files changed, 21 insertions, 2 deletions
diff --git a/build2/cc/install.hxx b/build2/cc/install.hxx
index b7d92fb..a846fc8 100644
--- a/build2/cc/install.hxx
+++ b/build2/cc/install.hxx
@@ -19,10 +19,12 @@ namespace build2
{
class link;
- class install: public build2::install::file_rule, virtual common
+ // Installation rule for exe, liba{}, and libs{}.
+ //
+ class file_install: public install::file_rule, virtual common
{
public:
- install (data&&, const link&);
+ file_install (data&&, const link&);
virtual const target*
filter (action, const target&, prerequisite_member) const override;
@@ -42,6 +44,23 @@ namespace build2
private:
const link& link_;
};
+
+ // Installation rule for libux{}.
+ //
+ class alias_install: public install::alias_rule, virtual common
+ {
+ public:
+ alias_install (data&&, const link&);
+
+ virtual const target*
+ filter (action, const target&, prerequisite_member) const override;
+
+ virtual match_result
+ match (action, target&, const string&) const override;
+
+ private:
+ const link& link_;
+ };
}
}