// file : build/spec -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file #ifndef BUILD_SPEC #define BUILD_SPEC #include #include #include #include // move() #include #include namespace build { struct targetspec { explicit targetspec (name t): target (std::move (t)) {} targetspec (path sb, name t) : src_base (std::move (sb)), target (std::move (t)) {} path src_base; name target; }; struct opspec: std::vector { opspec () = default; opspec (std::string o): operation (std::move (o)) {} std::string operation; }; struct metaopspec: std::vector { metaopspec () = default; metaopspec (std::string mo): meta_operation (std::move (mo)) {} std::string meta_operation; }; typedef std::vector buildspec; std::ostream& operator<< (std::ostream&, const targetspec&); std::ostream& operator<< (std::ostream&, const opspec&); std::ostream& operator<< (std::ostream&, const metaopspec&); std::ostream& operator<< (std::ostream&, const buildspec&); } #endif // BUILD_SPEC