parent
							
								
									a2d92bb20e
								
							
						
					
					
						commit
						c05d9ae7a5
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		|  | @ -534,7 +534,8 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * * | |||
| 
 | ||||
|     PathSet context; | ||||
| 
 | ||||
|     string outputHash, outputHashAlgo; | ||||
|     std::experimental::optional<std::string> outputHash; | ||||
|     std::string outputHashAlgo; | ||||
|     bool outputHashRecursive = false; | ||||
| 
 | ||||
|     StringSet outputs; | ||||
|  | @ -703,7 +704,7 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * * | |||
|         throw EvalError(format("derivation names are not allowed to end in ‘%1%’, at %2%") | ||||
|             % drvExtension % posDrvName); | ||||
| 
 | ||||
|     if (outputHash != "") { | ||||
|     if (outputHash) { | ||||
|         /* Handle fixed-output derivations. */ | ||||
|         if (outputs.size() != 1 || *(outputs.begin()) != "out") | ||||
|             throw Error(format("multiple outputs are not supported in fixed-output derivations, at %1%") % posDrvName); | ||||
|  | @ -711,13 +712,13 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * * | |||
|         HashType ht = parseHashType(outputHashAlgo); | ||||
|         if (ht == htUnknown) | ||||
|             throw EvalError(format("unknown hash algorithm ‘%1%’, at %2%") % outputHashAlgo % posDrvName); | ||||
|         Hash h = parseHash16or32(ht, outputHash); | ||||
|         Hash h = parseHash16or32(ht, *outputHash); | ||||
|         outputHash = printHash(h); | ||||
|         if (outputHashRecursive) outputHashAlgo = "r:" + outputHashAlgo; | ||||
| 
 | ||||
|         Path outPath = state.store->makeFixedOutputPath(outputHashRecursive, h, drvName); | ||||
|         drv.env["out"] = outPath; | ||||
|         drv.outputs["out"] = DerivationOutput(outPath, outputHashAlgo, outputHash); | ||||
|         drv.outputs["out"] = DerivationOutput(outPath, outputHashAlgo, *outputHash); | ||||
|     } | ||||
| 
 | ||||
|     else { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue