clangd broke because it can't look through symlinks. compile_commands manipulation does not fix it, clangd configuration does not fix it, a vfs overlay does not fix it, and while a combination of those can fix it with a bind mount in place that's just too cursed to even consider clangd bug: https://github.com/llvm/llvm-project/issues/116877 Change-Id: I8e3e8489548eb3a7aa65ac9d12a5ec8abf814aec
24 lines
1.1 KiB
Markdown
24 lines
1.1 KiB
Markdown
---
|
|
name: outputOf
|
|
args: [derivation-reference, output-name]
|
|
experimentalFeature: dynamic-derivations
|
|
---
|
|
Return the output path of a derivation, literally or using a placeholder if needed.
|
|
|
|
If the derivation has a statically-known output path (i.e. the derivation output is input-addressed, or fixed content-addresed), the output path will just be returned.
|
|
But if the derivation is content-addressed or if the derivation is itself not-statically produced (i.e. is the output of another derivation), a placeholder will be returned instead.
|
|
|
|
*`derivation reference`* must be a string that may contain a regular store path to a derivation, or may be a placeholder reference. If the derivation is produced by a derivation, you must explicitly select `drv.outPath`.
|
|
This primop can be chained arbitrarily deeply.
|
|
For instance,
|
|
|
|
```nix
|
|
builtins.outputOf
|
|
(builtins.outputOf myDrv "out)
|
|
"out"
|
|
```
|
|
|
|
will return a placeholder for the output of the output of `myDrv`.
|
|
|
|
This primop corresponds to the `^` sigil for derivable paths, e.g. as part of installable syntax on the command line.
|