Fabrique

A build language for complex systems

 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
fabrique::dag::Target Class Reference

A named build target that references a set of files. More...

#include <Target.h>

Inheritance diagram for fabrique::dag::Target:
fabrique::dag::Value fabrique::HasSource fabrique::Printable fabrique::Typed fabrique::Uncopyable

Public Member Functions

const std::string & name () const
 
const std::shared_ptr< List > & files () const
 
bool hasFields () const override
 
ValuePtr field (const std::string &) const override
 
virtual ValuePtr Add (ValuePtr &) const override
 Add this fabrique::dag::Value to a following Value. More...
 
virtual ValuePtr PrefixWith (ValuePtr &) const override
 Apply the prefix operation: prefix this value with another value.
 
virtual ValuePtr ScalarAdd (ValuePtr &) const override
 Add another fabrique::dag::Value scalar-wise across this Value.
 
virtual ValuePtr And (ValuePtr &) const override
 Logical and. More...
 
virtual ValuePtr Or (ValuePtr &) const override
 Logical or. More...
 
virtual ValuePtr Xor (ValuePtr &) const override
 Logical xor. More...
 
virtual ValuePtr Equals (ValuePtr &) const override
 Equivalence. More...
 
virtual const ListasList () const override
 A list representation of this value (or nullptr).
 
virtual void PrettyPrint (Bytestream &, size_t indent=0) const override
 Print a human-readable representation to an output stream and return that output stream.
 
void Accept (Visitor &v) const override
 
- Public Member Functions inherited from fabrique::dag::Value
virtual ValuePtr Negate (const SourceRange &loc) const
 Unary 'not' operator.
 
virtual bool canScalarAdd (const Value &) const
 This Value can add a value to itself in a scalar fashion. More...
 
- Public Member Functions inherited from fabrique::HasSource
 HasSource (const SourceRange &src)
 
const SourceRangesource () const
 
- Public Member Functions inherited from fabrique::Printable
 Printable (const Printable &)
 
Printableoperator= (const Printable &)
 
virtual std::string str () const
 
- Public Member Functions inherited from fabrique::Typed
 Typed (const Type &t)
 
virtual const Typetype () const
 

Static Public Member Functions

static TargetCreate (const std::string &name, const std::shared_ptr< Build > &)
 
static TargetCreate (const std::string &name, const std::shared_ptr< File > &)
 
static TargetCreate (const std::string &name, const std::shared_ptr< List > &)
 

Additional Inherited Members

- Protected Member Functions inherited from fabrique::dag::Value
 Value (const Type &, const SourceRange &)
 

Detailed Description

A named build target that references a set of files.

Definition at line 50 of file Target.h.

Member Function Documentation

ValuePtr Target::Add ( ValuePtr &  ) const
overridevirtual

Add this fabrique::dag::Value to a following Value.

The implementation of addition is type-dependent: it might make sense to add, concatenate or apply a logical AND.

Reimplemented from fabrique::dag::Value.

Definition at line 126 of file Target.cc.

ValuePtr Target::And ( ValuePtr &  ) const
overridevirtual

Logical and.

Reimplemented from fabrique::dag::Value.

Definition at line 141 of file Target.cc.

ValuePtr Target::Equals ( ValuePtr &  ) const
overridevirtual

Equivalence.

Reimplemented from fabrique::dag::Value.

Definition at line 156 of file Target.cc.

ValuePtr Target::Or ( ValuePtr &  ) const
overridevirtual

Logical or.

Reimplemented from fabrique::dag::Value.

Definition at line 146 of file Target.cc.

ValuePtr Target::Xor ( ValuePtr &  ) const
overridevirtual

Logical xor.

Reimplemented from fabrique::dag::Value.

Definition at line 151 of file Target.cc.


The documentation for this class was generated from the following files: