diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-01-20T14·10+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-01-20T14·10+0000 |
commit | 05f0430de1d8eeae222a1306d4d0f7f407c8ce7d (patch) | |
tree | 2bd947476885025bd52f61430c269398008fb093 /src/libstore/misc.cc | |
parent | 6ff48e77f6da3c523a29c254b315d83e310290b3 (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/misc.cc')
-rw-r--r-- | src/libstore/misc.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc index c585a9aeac5c..dbb9273f7955 100644 --- a/src/libstore/misc.cc +++ b/src/libstore/misc.cc @@ -39,9 +39,12 @@ void storePathRequisites(const Path & storePath, Derivation drv = derivationFromPath(storePath); - for (PathSet::iterator i = drv.inputDrvs.begin(); + for (DerivationInputs::iterator i = drv.inputDrvs.begin(); i != drv.inputDrvs.end(); ++i) - storePathRequisites(*i, includeOutputs, paths); + /* !!! Maybe this is too strict, since it will include + *all* output paths of the input derivation, not just + the ones needed by this derivation. */ + storePathRequisites(i->first, includeOutputs, paths); for (PathSet::iterator i = drv.inputSrcs.begin(); i != drv.inputSrcs.end(); ++i) |