aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/target.txx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/target.txx')
-rw-r--r--libbuild2/target.txx18
1 files changed, 18 insertions, 0 deletions
diff --git a/libbuild2/target.txx b/libbuild2/target.txx
index b482d64..ef14cf5 100644
--- a/libbuild2/target.txx
+++ b/libbuild2/target.txx
@@ -179,4 +179,22 @@ namespace build2
t.prerequisites (move (ps));
return &t;
}
+
+ // exe
+ //
+ template <typename T>
+ const T* exe::
+ lookup_metadata (const char* var) const
+ {
+ if (auto* ns = cast_null<names> (vars[ctx.var_export_metadata]))
+ {
+ // Metadata variable prefix is in the second name.
+ //
+ assert (ns->size () == 2 && (*ns)[1].simple ());
+
+ return cast_null<T> (vars[(*ns)[1].value + '.' + var]);
+ }
+
+ return nullptr;
+ }
}