#ifndef __GET_DRVS_H #define __GET_DRVS_H #include #include #include #include "eval.hh" typedef map MetaInfo; struct DrvInfo { private: string drvPath; string outPath; public: string name; string attrPath; /* path towards the derivation */ string system; shared_ptr attrs; string queryDrvPath(EvalState & state) const; string queryOutPath(EvalState & state) const; MetaInfo queryMetaInfo(EvalState & state) const; void setDrvPath(const string & s) { drvPath = s; } void setOutPath(const string & s) { outPath = s; } }; typedef list DrvInfos; /* Evaluate expression `e'. If it evaluates to a derivation, store information about the derivation in `drv' and return true. Otherwise, return false. */ bool getDerivation(EvalState & state, Expr e, DrvInfo & drv); void getDerivations(EvalState & state, Expr e, const string & pathPrefix, const ATermMap & autoArgs, DrvInfos & drvs); #endif /* !__GET_DRVS_H */