From 4372f041bb7401c3adc2d5710566b13f64722102 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 27 Feb 2015 16:57:34 +0200 Subject: Variable assignment, appending support --- build/name | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 build/name (limited to 'build/name') diff --git a/build/name b/build/name new file mode 100644 index 0000000..db7b61c --- /dev/null +++ b/build/name @@ -0,0 +1,43 @@ +// file : build/name -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC +// license : MIT; see accompanying LICENSE file + +#ifndef BUILD_NAME +#define BUILD_NAME + +#include +#include +#include +#include // move() + +#include + +namespace build +{ + // A name is what we operate on by default. Depending on the context, + // it can be interpreted as a target or prerequisite name. A name + // without a type and directory can be used to represent any text. + // + struct name + { + explicit + name (std::string v): value (std::move (v)) {} + + name (std::string t, path d, std::string v) + : type (std::move (t)), dir (std::move (d)), value (std::move (v)) {} + + std::string type; + path dir; + std::string value; + }; + + typedef std::vector names; + + std::ostream& + operator<< (std::ostream&, const name&); + + std::ostream& + operator<< (std::ostream&, const names&); +} + +#endif // BUILD_NAME -- cgit v1.1