aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/derivations.hh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-01-20 14:10:19 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-01-20 14:10:19 +0000
commit05f0430de1d8eeae222a1306d4d0f7f407c8ce7d (patch)
tree2bd947476885025bd52f61430c269398008fb093 /src/libstore/derivations.hh
parent6ff48e77f6da3c523a29c254b315d83e310290b3 (diff)
* Another change to low-level derivations. The last one this year, I
promise :-) This allows derivations to specify on *what* output paths of input derivations they are dependent. This helps to prevent unnecessary downloads. For instance, a build might be dependent on the `devel' and `lib' outputs of some library component, but not the `docs' output.
Diffstat (limited to 'src/libstore/derivations.hh')
-rw-r--r--src/libstore/derivations.hh7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstore/derivations.hh b/src/libstore/derivations.hh
index c264981d2..9358db2ed 100644
--- a/src/libstore/derivations.hh
+++ b/src/libstore/derivations.hh
@@ -28,12 +28,17 @@ struct DerivationOutput
};
typedef map<string, DerivationOutput> DerivationOutputs;
+
+/* For inputs that are sub-derivations, we specify exactly which
+ output IDs we are interested in. */
+typedef map<Path, StringSet> DerivationInputs;
+
typedef map<string, string> StringPairs;
struct Derivation
{
DerivationOutputs outputs; /* keyed on symbolic IDs */
- PathSet inputDrvs; /* inputs that are sub-derivations */
+ DerivationInputs inputDrvs; /* inputs that are sub-derivations */
PathSet inputSrcs; /* inputs that are sources */
string platform;
Path builder;