2005-01-19 16:39:47 +00:00
|
|
|
#ifndef __BUILD_H
|
|
|
|
#define __BUILD_H
|
2003-07-20 19:29:38 +00:00
|
|
|
|
2005-01-19 16:39:47 +00:00
|
|
|
#include "derivations.hh"
|
2003-07-20 19:29:38 +00:00
|
|
|
|
2005-01-20 16:01:07 +00:00
|
|
|
/* Ensure that the output paths of the derivation are valid. If they
|
|
|
|
are already valid, this is a no-op. Otherwise, validity can
|
|
|
|
be reached in two ways. First, if the output paths have
|
|
|
|
substitutes, then those can be used. Second, the output paths can
|
|
|
|
be created by running the builder, after recursively building any
|
|
|
|
sub-derivations. */
|
2005-01-19 15:02:02 +00:00
|
|
|
void buildDerivations(const PathSet & drvPaths);
|
2003-07-20 19:29:38 +00:00
|
|
|
|
2005-01-20 16:01:07 +00:00
|
|
|
/* Ensure that a path is valid. If it is not currently valid, it may
|
|
|
|
be made valid by running a substitute (if defined for the path). */
|
2005-01-19 11:16:11 +00:00
|
|
|
void ensurePath(const Path & storePath);
|
2003-10-16 16:29:57 +00:00
|
|
|
|
2005-01-20 16:01:07 +00:00
|
|
|
/* Read a derivation, after ensuring its existence through
|
|
|
|
ensurePath(). */
|
2005-01-19 11:16:11 +00:00
|
|
|
Derivation derivationFromPath(const Path & drvPath);
|
2003-10-16 16:29:57 +00:00
|
|
|
|
2005-01-19 14:36:00 +00:00
|
|
|
/* Place in `paths' the set of all store paths in the file system
|
2005-01-19 11:16:11 +00:00
|
|
|
closure of `storePath'; that is, all paths than can be directly or
|
2005-01-25 11:18:03 +00:00
|
|
|
indirectly reached from it. `paths' is not cleared. If
|
|
|
|
`flipDirection' is true, the set of paths that can reach
|
2005-12-13 21:04:48 +00:00
|
|
|
`storePath' is returned; that is, the closures under the
|
|
|
|
`referrers' relation instead of the `references' relation is
|
|
|
|
returned. */
|
2005-01-19 11:16:11 +00:00
|
|
|
void computeFSClosure(const Path & storePath,
|
2005-01-25 11:18:03 +00:00
|
|
|
PathSet & paths, bool flipDirection = false);
|
2005-01-19 11:16:11 +00:00
|
|
|
|
2005-02-14 17:35:10 +00:00
|
|
|
/* Return the path corresponding to the output identifier `id' in the
|
|
|
|
given derivation. */
|
|
|
|
Path findOutput(const Derivation & drv, string id);
|
|
|
|
|
|
|
|
|
2005-01-19 16:39:47 +00:00
|
|
|
#endif /* !__BUILD_H */
|