diff options
Diffstat (limited to 'libbuild2/target.txx')
-rw-r--r-- | libbuild2/target.txx | 18 |
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; + } } |