module Flavour (Flavour (..)) where import Expression -- Please update doc/{flavours.md, user-settings.md} when changing this file. -- | 'Flavour' is a collection of build settings that fully define a GHC build. -- Note the following type semantics: -- * @Bool@: a plain Boolean flag whose value is known at compile time. -- * @Action Bool@: a flag whose value can depend on the build environment. -- * @Predicate@: a flag whose value can depend on the build environment and -- on the current build target. data Flavour = Flavour { -- | Flavour name, to select this flavour from command line. name :: String, -- | Use these command line arguments. args :: Args, -- | Build these packages. packages :: Stage -> Action [Package], -- | Either 'integerGmp' or 'integerSimple'. integerLibrary :: Action Package, -- | Build libraries these ways. libraryWays :: Ways, -- | Build RTS these ways. rtsWays :: Ways, -- | Build split objects. splitObjects :: Predicate, -- | Build dynamic GHC programs. dynamicGhcPrograms :: Action Bool, -- | Enable GHCi debugger. ghciWithDebugger :: Bool, -- | Build profiled GHC. ghcProfiled :: Bool, -- | Build GHC with debug information. ghcDebugged :: Bool }