forked from lix-project/lix
8992fce3da
user environment, e.g., $ nix-env -i /nix/store/z58v41v21xd3ywrqk1vmvdwlagjx7f10-aterm-2.3.1.drv or $ nix-env -i /nix/store/hsyj5pbn0d9iz7q0aj0fga7cpaadvp1l-aterm-2.3.1 This is useful because it allows Nix expressions to be bypassed entirely. For instance, if only a nix-pull manifest is provided, plus the top-level path of some component, it can be installed without having to supply the Nix expression (e.g., for obfuscation, or to be independent of Nix expression language changes or context dependencies).
37 lines
1.4 KiB
C++
37 lines
1.4 KiB
C++
#ifndef __BUILD_H
|
|
#define __BUILD_H
|
|
|
|
#include "derivations.hh"
|
|
|
|
/* 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. */
|
|
void buildDerivations(const PathSet & drvPaths);
|
|
|
|
/* 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). */
|
|
void ensurePath(const Path & storePath);
|
|
|
|
/* Read a derivation, after ensuring its existence through
|
|
ensurePath(). */
|
|
Derivation derivationFromPath(const Path & drvPath);
|
|
|
|
/* Place in `paths' the set of all store paths in the file system
|
|
closure of `storePath'; that is, all paths than can be directly or
|
|
indirectly reached from it. `paths' is not cleared. If
|
|
`flipDirection' is true, the set of paths that can reach
|
|
`storePath' is returned; that is, the closures under the `referers'
|
|
relation instead of the `references' relation is returned. */
|
|
void computeFSClosure(const Path & storePath,
|
|
PathSet & paths, bool flipDirection = false);
|
|
|
|
/* Return the path corresponding to the output identifier `id' in the
|
|
given derivation. */
|
|
Path findOutput(const Derivation & drv, string id);
|
|
|
|
|
|
#endif /* !__BUILD_H */
|