What a set is rendered against besides its pins: the platform its packages' conditionals are resolved for, and the Hackage index state its revisions are read at (the newest, when undeclared).
Modulehorizon-config-shell-0.12.1GHC2024
Horizon.Config.Cabal2Nix
Turn a HaskellPackage pin (plus the set-wide Modifiers and the
Rendering the set is rendered against) into cabal2nix Options. Ported
from horizon-gen-nix, retargeted onto Horizon.Config.Schema (no
horizon-spec, no dhall) and onto set-level modifiers: build policy is a
neighbourhood property of the whole set, so the same Modifiers apply
to every pin rather than being read off each one. A local package, the
repository's own code, is built by its own policy (localPolicy).
- 1 type
- 4 values
- Packagehorizon-config-shell-0.12.1
- Exports5
- LanguageGHC2024
- LicenceBSD-3-Clause
- SourceCabal2Nix.hs
Build the options for one package: apply its source, its cabal flags,
the compiler, the rendering's platform, and the SET-WIDE modifiers (the
neighbourhood property), or for a local package localPolicy. The
rendering's index state is not an option: it is the state the run's one
Hackage index is read at (Horizon.Config.Index).
The platform a set that declares none is rendered for. A constant, not the machine running the generator, so the same config renders the same set on any machine.
The platform a set is rendered for: the one it declares, which cabal
must know by name (an unknown architecture or system would silently match
no arch(…) or os(…) conditional), or else defaultPlatform.