mirror of
https://github.com/NixOS/nix
synced 2025-07-01 08:28:00 +02:00
Add a mechanism for derivation attributes to reference the derivation's outputs
For example, you can now say: configureFlags = "--prefix=${placeholder "out"} --includedir=${placeholder "dev"}"; The strings returned by the ‘placeholder’ builtin are replaced at build time by the actual store paths corresponding to the specified outputs. Previously, you had to work around the inability to self-reference by doing stuff like: preConfigure = '' configureFlags+=" --prefix $out --includedir=$dev" ''; or rely on ad-hoc variable interpolation semantics in Autoconf or Make (e.g. --prefix=\$(out)), which doesn't always work.
This commit is contained in:
parent
ac841a4679
commit
22d6e31fc6
7 changed files with 63 additions and 16 deletions
|
@ -390,4 +390,11 @@ Sink & operator << (Sink & out, const BasicDerivation & drv)
|
|||
}
|
||||
|
||||
|
||||
std::string hashPlaceholder(const std::string & outputName)
|
||||
{
|
||||
// FIXME: memoize?
|
||||
return "/" + printHash32(hashString(htSHA256, "nix-output:" + outputName));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue