Cabal
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Simple.Program.GHC

Synopsis

Documentation

data GhcOptions Source #

A structured set of GHC options/flags

Note that options containing lists fall into two categories:

  • options that can be safely deduplicated, e.g. input modules or enabled extensions;
  • options that cannot be deduplicated in general without changing semantics, e.g. extra ghc options or linking options.

Constructors

GhcOptions 

Fields

Instances

Instances details
Monoid GhcOptions Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

Semigroup GhcOptions Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

Generic GhcOptions Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

Associated Types

type Rep GhcOptions :: Type -> Type #

Show GhcOptions Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

type Rep GhcOptions Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

type Rep GhcOptions = D1 ('MetaData "GhcOptions" "Distribution.Simple.Program.GHC" "Cabal-3.14.0.0-inplace" 'False) (C1 ('MetaCons "GhcOptions" 'PrefixI 'True) ((((((S1 ('MetaSel ('Just "ghcOptMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag GhcMode)) :*: S1 ('MetaSel ('Just "ghcOptExtra") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])) :*: (S1 ('MetaSel ('Just "ghcOptExtraDefault") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: S1 ('MetaSel ('Just "ghcOptInputFiles") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg 'File))))) :*: ((S1 ('MetaSel ('Just "ghcOptInputScripts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg 'File))) :*: S1 ('MetaSel ('Just "ghcOptInputModules") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR ModuleName))) :*: (S1 ('MetaSel ('Just "ghcOptOutputFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg 'File))) :*: S1 ('MetaSel ('Just "ghcOptOutputDynFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath))))) :*: (((S1 ('MetaSel ('Just "ghcOptSourcePathClear") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptSourcePath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg ('Dir Source))))) :*: (S1 ('MetaSel ('Just "ghcOptThisUnitId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "ghcOptThisComponentId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ComponentId)))) :*: ((S1 ('MetaSel ('Just "ghcOptInstantiatedWith") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(ModuleName, OpenModule)]) :*: S1 ('MetaSel ('Just "ghcOptNoCode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "ghcOptPackageDBs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: S1 ('MetaSel ('Just "ghcOptPackages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (OpenUnitId, ModuleRenaming))))))) :*: ((((S1 ('MetaSel ('Just "ghcOptHideAllPackages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptWarnMissingHomeModules") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "ghcOptNoAutoLinkPackages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptLinkLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]))) :*: ((S1 ('MetaSel ('Just "ghcOptLinkLibPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg ('Dir Lib)))) :*: S1 ('MetaSel ('Just "ghcOptLinkOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])) :*: (S1 ('MetaSel ('Just "ghcOptLinkFrameworks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR String)) :*: S1 ('MetaSel ('Just "ghcOptLinkFrameworkDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg ('Dir Framework))))))) :*: (((S1 ('MetaSel ('Just "ghcOptLinkRts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptNoLink") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "ghcOptLinkNoHsMain") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptLinkModDefFiles") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR FilePath)))) :*: ((S1 ('MetaSel ('Just "ghcOptCcOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: S1 ('MetaSel ('Just "ghcOptCxxOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])) :*: (S1 ('MetaSel ('Just "ghcOptAsmOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: (S1 ('MetaSel ('Just "ghcOptCppOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: S1 ('MetaSel ('Just "ghcOptCppIncludePath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg ('Dir Include)))))))))) :*: (((((S1 ('MetaSel ('Just "ghcOptCppIncludes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg 'File))) :*: S1 ('MetaSel ('Just "ghcOptFfiIncludes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR FilePath))) :*: (S1 ('MetaSel ('Just "ghcOptCcProgram") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "ghcOptLanguage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Language)))) :*: ((S1 ('MetaSel ('Just "ghcOptExtensions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR Extension)) :*: S1 ('MetaSel ('Just "ghcOptExtensionMap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Extension (Maybe CompilerFlag)))) :*: (S1 ('MetaSel ('Just "ghcOptOptimisation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag GhcOptimisation)) :*: S1 ('MetaSel ('Just "ghcOptDebugInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag DebugInfoLevel))))) :*: (((S1 ('MetaSel ('Just "ghcOptProfilingMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptProfilingAuto") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag GhcProfAuto))) :*: (S1 ('MetaSel ('Just "ghcOptSplitSections") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptSplitObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "ghcOptNumJobs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ParStrat)) :*: S1 ('MetaSel ('Just "ghcOptHPCDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg ('Dir Mix))))) :*: (S1 ('MetaSel ('Just "ghcOptGHCiScripts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "ghcOptHiSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)))))) :*: ((((S1 ('MetaSel ('Just "ghcOptObjSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "ghcOptDynHiSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String))) :*: (S1 ('MetaSel ('Just "ghcOptDynObjSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "ghcOptHiDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg ('Dir Artifacts)))))) :*: ((S1 ('MetaSel ('Just "ghcOptHieDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg ('Dir Artifacts)))) :*: S1 ('MetaSel ('Just "ghcOptObjDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg ('Dir Artifacts))))) :*: (S1 ('MetaSel ('Just "ghcOptOutputDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg ('Dir Artifacts)))) :*: S1 ('MetaSel ('Just "ghcOptStubDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (SymbolicPath Pkg ('Dir Artifacts))))))) :*: (((S1 ('MetaSel ('Just "ghcOptDynLinkMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag GhcDynLinkMode)) :*: S1 ('MetaSel ('Just "ghcOptStaticLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "ghcOptShared") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "ghcOptFPic") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "ghcOptDylibName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "ghcOptRPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR FilePath))) :*: (S1 ('MetaSel ('Just "ghcOptVerbosity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Verbosity)) :*: (S1 ('MetaSel ('Just "ghcOptExtraPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubListR (SymbolicPath Pkg ('Dir Build)))) :*: S1 ('MetaSel ('Just "ghcOptCabal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))))))))))

data GhcMode Source #

Constructors

GhcModeCompile
ghc -c
GhcModeLink
ghc
GhcModeMake
ghc --make
GhcModeInteractive

ghci / ghc --interactive

GhcModeAbiHash

ghc --abi-hash | GhcModeDepAnalysis -- ^ ghc -M | GhcModeEvaluate -- ^ ghc -e

Instances

Instances details
Show GhcMode Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

Eq GhcMode Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

Methods

(==) :: GhcMode -> GhcMode -> Bool #

(/=) :: GhcMode -> GhcMode -> Bool #

data GhcProfAuto Source #

Constructors

GhcProfAutoAll
-fprof-auto
GhcProfAutoToplevel
-fprof-auto-top
GhcProfAutoExported
-fprof-auto-exported
GhcProfLate

@-fprof-late

Instances

Instances details
Show GhcProfAuto Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

Eq GhcProfAuto Source # 
Instance details

Defined in Distribution.Simple.Program.GHC

ghcInvocation :: Verbosity -> ConfiguredProgram -> Compiler -> Platform -> Maybe (SymbolicPath CWD (Dir Pkg)) -> GhcOptions -> IO ProgramInvocation Source #

runGHC :: Verbosity -> ConfiguredProgram -> Compiler -> Platform -> Maybe (SymbolicPath CWD (Dir Pkg)) -> GhcOptions -> IO () Source #

normaliseGhcArgs :: Maybe Version -> PackageDescription -> [String] -> [String] Source #