aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-10-16 13:21:35 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:21 +0200
commitd81ad6a0b20613ac77e115ca273cd48eaeeae1c8 (patch)
tree99fbfd0ab131ead133925ba46786c0db453d5fdf
parentd27a6011a1768c7311ae6911c53dd49c293a24af (diff)
Add target::out_dir() accessor
-rw-r--r--build2/install/rule.cxx3
-rw-r--r--build2/target5
-rw-r--r--build2/target.cxx2
3 files changed, 6 insertions, 4 deletions
diff --git a/build2/install/rule.cxx b/build2/install/rule.cxx
index 82dde04..68000af 100644
--- a/build2/install/rule.cxx
+++ b/build2/install/rule.cxx
@@ -273,8 +273,7 @@ namespace build2
{
// The target can be in out or src.
//
- const dir_path& d (
- (t.out.empty () ? t.dir : t.out).leaf (p->out_path ()));
+ const dir_path& d (t.out_dir ().leaf (p->out_path ()));
// Add it as another leading directory rather than modifying
// the last one directly; somehow, it feels right.
diff --git a/build2/target b/build2/target
index 3123905..8c2b2da 100644
--- a/build2/target
+++ b/build2/target
@@ -149,6 +149,9 @@ namespace build2
const string name;
const string* ext; // Extension. NULL - unspecified, empty - no extension.
+ const dir_path&
+ out_dir () const {return out.empty () ? dir : out;}
+
// Target group to which this target belongs, if any. Note that we assume
// that the group and all its members are in the same scope (for example,
// in variable lookup). We also don't support nested groups (with a small
@@ -308,7 +311,7 @@ namespace build2
bool
in (const scope& s) const
{
- return (out.empty () ? dir : out).sub (s.out_path ());
+ return out_dir ().sub (s.out_path ());
}
// Prerequisites.
diff --git a/build2/target.cxx b/build2/target.cxx
index 540f4b4..3b6e06f 100644
--- a/build2/target.cxx
+++ b/build2/target.cxx
@@ -110,7 +110,7 @@ namespace build2
// If this target is from the src tree, use its out directory to find
// the scope.
//
- return scopes.find (out.empty () ? dir : out);
+ return scopes.find (out_dir ());
}
scope& target::