aboutsummaryrefslogtreecommitdiff
path: root/build/target
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-21 09:39:57 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-21 09:39:57 +0200
commit10604d850510e46b2ee625548abe5eb9a1172a0d (patch)
tree0a301d0d69afe2123a406afeeff03f7fe89c4433 /build/target
parentcb8399da1f0b1c5f28e443c98bfc3cb4e12b8cbf (diff)
Add alias{} target type, use as base for dir{}
Diffstat (limited to 'build/target')
-rw-r--r--build/target21
1 files changed, 17 insertions, 4 deletions
diff --git a/build/target b/build/target
index d164f72..e07f6e0 100644
--- a/build/target
+++ b/build/target
@@ -889,11 +889,10 @@ namespace build
static const target_type static_type;
};
- // Directory alias/action target. Note that it is not mtime-based.
- // Rather it is meant to represent a group of targets. For actual
- // filesystem directory (creation), see fsdir.
+ // Alias target. It represents a list of targets (its prerequisites)
+ // as a single "name".
//
- class dir: public target
+ class alias: public target
{
public:
using target::target;
@@ -903,6 +902,20 @@ namespace build
static const target_type static_type;
};
+ // Directory target. Note that this is not a filesystem directory
+ // but rather an alias target with the directory name. For actual
+ // filesystem directory (creation), see fsdir.
+ //
+ class dir: public alias
+ {
+ public:
+ using alias::alias;
+
+ public:
+ virtual const target_type& type () const {return static_type;}
+ static const target_type static_type;
+ };
+
// While a filesystem directory is mtime-based, the semantics is
// not very useful in our case. In particular, if another target
// depends on fsdir{}, then all that's desired is the creation of