cabal-install-3.10.2.1: The command-line interface for Cabal and Hackage.
Safe HaskellNone
LanguageHaskell2010

Distribution.Client.ProjectPlanning.Types

Description

Types used while planning how to build everything in a project.

Primarily this is the ElaboratedInstallPlan.

Synopsis

Documentation

Elaborated install plan types

type ElaboratedInstallPlan = GenericInstallPlan InstalledPackageInfo ElaboratedConfiguredPackage #

The combination of an elaborated install plan plus a ElaboratedSharedConfig contains all the details necessary to be able to execute the plan without having to make further policy decisions.

It does not include dynamic elements such as resources (such as http connections).

data ElaboratedConfiguredPackage #

Constructors

ElaboratedConfiguredPackage 

Fields

Instances

Instances details
IsNode ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

HasUnitId ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Package ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Structured ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep ElaboratedConfiguredPackage 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedConfiguredPackage = D1 ('MetaData "ElaboratedConfiguredPackage" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedConfiguredPackage" 'PrefixI 'True) ((((((S1 ('MetaSel ('Just "elabUnitId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId) :*: S1 ('MetaSel ('Just "elabComponentId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId)) :*: (S1 ('MetaSel ('Just "elabInstantiatedWith") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map ModuleName Module)) :*: (S1 ('MetaSel ('Just "elabLinkedInstantiatedWith") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map ModuleName OpenModule)) :*: S1 ('MetaSel ('Just "elabIsCanonical") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabPkgSourceId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageId) :*: (S1 ('MetaSel ('Just "elabModuleShape") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleShape) :*: S1 ('MetaSel ('Just "elabFlagAssignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment))) :*: (S1 ('MetaSel ('Just "elabFlagDefaults") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment) :*: (S1 ('MetaSel ('Just "elabPkgDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDescription) :*: S1 ('MetaSel ('Just "elabPkgSourceLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PackageLocation (Maybe FilePath))))))) :*: (((S1 ('MetaSel ('Just "elabPkgSourceHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PackageSourceHash)) :*: S1 ('MetaSel ('Just "elabLocalToProject") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "elabBuildStyle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuildStyle) :*: (S1 ('MetaSel ('Just "elabEnabledSpec") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentRequestedSpec) :*: S1 ('MetaSel ('Just "elabStanzasAvailable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OptionalStanzaSet)))) :*: ((S1 ('MetaSel ('Just "elabStanzasRequested") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OptionalStanzaMap (Maybe Bool))) :*: (S1 ('MetaSel ('Just "elabPackageDbs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe PackageDB]) :*: S1 ('MetaSel ('Just "elabSetupPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack))) :*: (S1 ('MetaSel ('Just "elabBuildPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: (S1 ('MetaSel ('Just "elabRegisterPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: S1 ('MetaSel ('Just "elabInplaceSetupPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack)))))) :*: ((((S1 ('MetaSel ('Just "elabInplaceBuildPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: S1 ('MetaSel ('Just "elabInplaceRegisterPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack)) :*: (S1 ('MetaSel ('Just "elabPkgDescriptionOverride") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CabalFileText)) :*: (S1 ('MetaSel ('Just "elabVanillaLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabSharedLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabStaticLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabDynExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabFullyStaticExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "elabGHCiLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabProfLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabProfExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "elabProfLibDetail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProfDetailLevel) :*: S1 ('MetaSel ('Just "elabProfExeDetail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProfDetailLevel)) :*: (S1 ('MetaSel ('Just "elabCoverage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabOptimization") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OptimisationLevel) :*: S1 ('MetaSel ('Just "elabSplitObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabSplitSections") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabStripLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabStripExes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "elabDebugInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DebugInfoLevel) :*: (S1 ('MetaSel ('Just "elabDumpBuildInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DumpBuildInfo) :*: S1 ('MetaSel ('Just "elabProgramPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map String FilePath)))))))) :*: (((((S1 ('MetaSel ('Just "elabProgramArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map String [String])) :*: S1 ('MetaSel ('Just "elabProgramPathExtra") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath])) :*: (S1 ('MetaSel ('Just "elabConfigureScriptArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: (S1 ('MetaSel ('Just "elabExtraLibDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "elabExtraLibDirsStatic") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath])))) :*: ((S1 ('MetaSel ('Just "elabExtraFrameworkDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: (S1 ('MetaSel ('Just "elabExtraIncludeDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "elabProgPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)))) :*: (S1 ('MetaSel ('Just "elabProgSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: (S1 ('MetaSel ('Just "elabInstallDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (InstallDirs FilePath)) :*: S1 ('MetaSel ('Just "elabHaddockHoogle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "elabHaddockHtml") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabHaddockHtmlLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :*: (S1 ('MetaSel ('Just "elabHaddockForeignLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabHaddockForHackage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HaddockTarget) :*: S1 ('MetaSel ('Just "elabHaddockExecutables") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabHaddockTestSuites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabHaddockBenchmarks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabHaddockInternal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "elabHaddockCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: (S1 ('MetaSel ('Just "elabHaddockLinkedSource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabHaddockQuickJump") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))))) :*: ((((S1 ('MetaSel ('Just "elabHaddockHscolourCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: S1 ('MetaSel ('Just "elabHaddockContents") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate))) :*: (S1 ('MetaSel ('Just "elabHaddockIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: (S1 ('MetaSel ('Just "elabHaddockBaseUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "elabHaddockLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))))) :*: ((S1 ('MetaSel ('Just "elabTestMachineLog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: (S1 ('MetaSel ('Just "elabTestHumanLog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: S1 ('MetaSel ('Just "elabTestShowDetails") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe TestShowDetails)))) :*: (S1 ('MetaSel ('Just "elabTestKeepTix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabTestWrapper") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: S1 ('MetaSel ('Just "elabTestFailWhenNoTestSuites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "elabTestTestOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PathTemplate]) :*: (S1 ('MetaSel ('Just "elabBenchmarkOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PathTemplate]) :*: S1 ('MetaSel ('Just "elabSetupScriptStyle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SetupScriptStyle))) :*: (S1 ('MetaSel ('Just "elabSetupScriptCliVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version) :*: (S1 ('MetaSel ('Just "elabConfigureTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: S1 ('MetaSel ('Just "elabBuildTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget])))) :*: ((S1 ('MetaSel ('Just "elabTestTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: (S1 ('MetaSel ('Just "elabBenchTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: S1 ('MetaSel ('Just "elabReplTarget") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ComponentTarget)))) :*: (S1 ('MetaSel ('Just "elabHaddockTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: (S1 ('MetaSel ('Just "elabBuildHaddocks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabPkgOrComp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ElaboratedPackageOrComponent)))))))))
Show ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

HasConfiguredId ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Key ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedConfiguredPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedConfiguredPackage = D1 ('MetaData "ElaboratedConfiguredPackage" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedConfiguredPackage" 'PrefixI 'True) ((((((S1 ('MetaSel ('Just "elabUnitId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId) :*: S1 ('MetaSel ('Just "elabComponentId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId)) :*: (S1 ('MetaSel ('Just "elabInstantiatedWith") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map ModuleName Module)) :*: (S1 ('MetaSel ('Just "elabLinkedInstantiatedWith") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map ModuleName OpenModule)) :*: S1 ('MetaSel ('Just "elabIsCanonical") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabPkgSourceId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageId) :*: (S1 ('MetaSel ('Just "elabModuleShape") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleShape) :*: S1 ('MetaSel ('Just "elabFlagAssignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment))) :*: (S1 ('MetaSel ('Just "elabFlagDefaults") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment) :*: (S1 ('MetaSel ('Just "elabPkgDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDescription) :*: S1 ('MetaSel ('Just "elabPkgSourceLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PackageLocation (Maybe FilePath))))))) :*: (((S1 ('MetaSel ('Just "elabPkgSourceHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PackageSourceHash)) :*: S1 ('MetaSel ('Just "elabLocalToProject") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "elabBuildStyle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuildStyle) :*: (S1 ('MetaSel ('Just "elabEnabledSpec") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentRequestedSpec) :*: S1 ('MetaSel ('Just "elabStanzasAvailable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OptionalStanzaSet)))) :*: ((S1 ('MetaSel ('Just "elabStanzasRequested") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OptionalStanzaMap (Maybe Bool))) :*: (S1 ('MetaSel ('Just "elabPackageDbs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe PackageDB]) :*: S1 ('MetaSel ('Just "elabSetupPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack))) :*: (S1 ('MetaSel ('Just "elabBuildPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: (S1 ('MetaSel ('Just "elabRegisterPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: S1 ('MetaSel ('Just "elabInplaceSetupPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack)))))) :*: ((((S1 ('MetaSel ('Just "elabInplaceBuildPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack) :*: S1 ('MetaSel ('Just "elabInplaceRegisterPackageDBStack") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageDBStack)) :*: (S1 ('MetaSel ('Just "elabPkgDescriptionOverride") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CabalFileText)) :*: (S1 ('MetaSel ('Just "elabVanillaLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabSharedLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabStaticLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabDynExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabFullyStaticExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "elabGHCiLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabProfLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabProfExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "elabProfLibDetail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProfDetailLevel) :*: S1 ('MetaSel ('Just "elabProfExeDetail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProfDetailLevel)) :*: (S1 ('MetaSel ('Just "elabCoverage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabOptimization") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OptimisationLevel) :*: S1 ('MetaSel ('Just "elabSplitObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabSplitSections") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabStripLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabStripExes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "elabDebugInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DebugInfoLevel) :*: (S1 ('MetaSel ('Just "elabDumpBuildInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DumpBuildInfo) :*: S1 ('MetaSel ('Just "elabProgramPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map String FilePath)))))))) :*: (((((S1 ('MetaSel ('Just "elabProgramArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map String [String])) :*: S1 ('MetaSel ('Just "elabProgramPathExtra") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath])) :*: (S1 ('MetaSel ('Just "elabConfigureScriptArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: (S1 ('MetaSel ('Just "elabExtraLibDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "elabExtraLibDirsStatic") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath])))) :*: ((S1 ('MetaSel ('Just "elabExtraFrameworkDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: (S1 ('MetaSel ('Just "elabExtraIncludeDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "elabProgPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)))) :*: (S1 ('MetaSel ('Just "elabProgSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: (S1 ('MetaSel ('Just "elabInstallDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (InstallDirs FilePath)) :*: S1 ('MetaSel ('Just "elabHaddockHoogle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "elabHaddockHtml") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabHaddockHtmlLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :*: (S1 ('MetaSel ('Just "elabHaddockForeignLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabHaddockForHackage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HaddockTarget) :*: S1 ('MetaSel ('Just "elabHaddockExecutables") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "elabHaddockTestSuites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabHaddockBenchmarks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabHaddockInternal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just "elabHaddockCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: (S1 ('MetaSel ('Just "elabHaddockLinkedSource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabHaddockQuickJump") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))))) :*: ((((S1 ('MetaSel ('Just "elabHaddockHscolourCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: S1 ('MetaSel ('Just "elabHaddockContents") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate))) :*: (S1 ('MetaSel ('Just "elabHaddockIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: (S1 ('MetaSel ('Just "elabHaddockBaseUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "elabHaddockLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))))) :*: ((S1 ('MetaSel ('Just "elabTestMachineLog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: (S1 ('MetaSel ('Just "elabTestHumanLog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PathTemplate)) :*: S1 ('MetaSel ('Just "elabTestShowDetails") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe TestShowDetails)))) :*: (S1 ('MetaSel ('Just "elabTestKeepTix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "elabTestWrapper") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: S1 ('MetaSel ('Just "elabTestFailWhenNoTestSuites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "elabTestTestOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PathTemplate]) :*: (S1 ('MetaSel ('Just "elabBenchmarkOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PathTemplate]) :*: S1 ('MetaSel ('Just "elabSetupScriptStyle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SetupScriptStyle))) :*: (S1 ('MetaSel ('Just "elabSetupScriptCliVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version) :*: (S1 ('MetaSel ('Just "elabConfigureTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: S1 ('MetaSel ('Just "elabBuildTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget])))) :*: ((S1 ('MetaSel ('Just "elabTestTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: (S1 ('MetaSel ('Just "elabBenchTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: S1 ('MetaSel ('Just "elabReplTarget") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ComponentTarget)))) :*: (S1 ('MetaSel ('Just "elabHaddockTargets") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ComponentTarget]) :*: (S1 ('MetaSel ('Just "elabBuildHaddocks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elabPkgOrComp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ElaboratedPackageOrComponent)))))))))

elabExeDependencyPaths :: ElaboratedConfiguredPackage -> [FilePath] #

This returns the paths of all the executables we depend on; we must add these paths to PATH before invoking the setup script. (This is usually what you want, not elabExeDependencies, if you actually want to build something.)

elabLibDependencies :: ElaboratedConfiguredPackage -> [ConfiguredId] #

The library dependencies (i.e., the libraries we depend on, NOT the dependencies of the library), NOT including setup dependencies. These are passed to the Setup script via --dependency.

elabOrderLibDependencies :: ElaboratedConfiguredPackage -> [UnitId] #

Like elabOrderDependencies, but only returns dependencies on libraries.

elabExeDependencies :: ElaboratedConfiguredPackage -> [ComponentId] #

The executable dependencies (i.e., the executables we depend on); these are the executables we must add to the PATH before we invoke the setup script.

elabOrderExeDependencies :: ElaboratedConfiguredPackage -> [UnitId] #

Like elabOrderDependencies, but only returns dependencies on executables. (This coincides with elabExeDependencies.)

elabSetupDependencies :: ElaboratedConfiguredPackage -> [ConfiguredId] #

The setup dependencies (the library dependencies of the setup executable; note that it is not legal for setup scripts to have executable dependencies at the moment.)

elabInplaceDependencyBuildCacheFiles :: DistDirLayout -> ElaboratedSharedConfig -> ElaboratedInstallPlan -> ElaboratedConfiguredPackage -> [FilePath] #

The cache files of all our inplace dependencies which, when updated, require us to rebuild. See #4202 for more details. Essentially, this is a list of filepaths that, if our dependencies get rebuilt, will themselves get updated.

Note: the hash of these cache files gets built into the build cache ourselves, which means that we end up tracking transitive dependencies!

Note: This tracks the "build" cache file, but not "registration" or "config" cache files. Why not? Arguably we should...

Note: This is a bit of a hack, because it is not really the hashes of the SOURCES of our (transitive) dependencies that we should use to decide whether or not to rebuild, but the output BUILD PRODUCTS. The strategy we use here will never work if we want to implement unchanging rebuilds.

elabRequiresRegistration :: ElaboratedConfiguredPackage -> Bool #

The packagecomponent containsis a library and so must be registered

dataDirsEnvironmentForPlan :: DistDirLayout -> ElaboratedInstallPlan -> [(String, Maybe FilePath)] #

Construct the environment needed for the data files to work. This consists of a separate *_datadir variable for each inplace package in the plan.

data ElaboratedPackageOrComponent #

Instances

Instances details
Structured ElaboratedPackageOrComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic ElaboratedPackageOrComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep ElaboratedPackageOrComponent 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedPackageOrComponent = D1 ('MetaData "ElaboratedPackageOrComponent" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElabPackage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ElaboratedPackage)) :+: C1 ('MetaCons "ElabComponent" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ElaboratedComponent)))
Show ElaboratedPackageOrComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary ElaboratedPackageOrComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq ElaboratedPackageOrComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedPackageOrComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedPackageOrComponent = D1 ('MetaData "ElaboratedPackageOrComponent" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElabPackage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ElaboratedPackage)) :+: C1 ('MetaCons "ElabComponent" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ElaboratedComponent)))

data ElaboratedComponent #

Some extra metadata associated with an ElaboratedConfiguredPackage which indicates that the "package" in question is actually a single component to be built. Arguably it would be clearer if there were an ADT which branched into package work items and component work items, but I've structured it this way to minimize change to the existing code (which I don't feel qualified to rewrite.)

Constructors

ElaboratedComponent 

Fields

  • compSolverName :: Component

    The name of the component to be built according to the solver

  • compComponentName :: Maybe ComponentName

    The name of the component to be built. Nothing if it's a setup dep.

  • compLibDependencies :: [ConfiguredId]

    The *external* library dependencies of this component. We pass this to the configure script.

  • compLinkedLibDependencies :: [OpenUnitId]

    In a component prior to instantiation, this list specifies the OpenUnitIds which, after instantiation, are the actual dependencies of this package. Note that this does NOT include signature packages, which do not turn into real ordering dependencies when we instantiate. This is intended to be a purely temporary field, to carry some information to the instantiation phase. It's more precise than compLibDependencies, and also stores information about internal dependencies.

  • compExeDependencies :: [ConfiguredId]

    The executable dependencies of this component (including internal executables).

  • compPkgConfigDependencies :: [(PkgconfigName, Maybe PkgconfigVersion)]

    The pkg-config dependencies of the component

  • compExeDependencyPaths :: [(ConfiguredId, FilePath)]

    The paths all our executable dependencies will be installed to once they are installed.

  • compOrderLibDependencies :: [UnitId]

    The UnitIds of the libraries (identifying elaborated packages/ components) that must be built before this project. This is used purely for ordering purposes. It can contain both references to definite and indefinite packages; an indefinite UnitId indicates that we must typecheck that indefinite package before we can build this one.

Instances

Instances details
Structured ElaboratedComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic ElaboratedComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep ElaboratedComponent 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedComponent = D1 ('MetaData "ElaboratedComponent" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedComponent" 'PrefixI 'True) (((S1 ('MetaSel ('Just "compSolverName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Component) :*: S1 ('MetaSel ('Just "compComponentName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ComponentName))) :*: (S1 ('MetaSel ('Just "compLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ConfiguredId]) :*: S1 ('MetaSel ('Just "compLinkedLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [OpenUnitId]))) :*: ((S1 ('MetaSel ('Just "compExeDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ConfiguredId]) :*: S1 ('MetaSel ('Just "compPkgConfigDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PkgconfigName, Maybe PkgconfigVersion)])) :*: (S1 ('MetaSel ('Just "compExeDependencyPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(ConfiguredId, FilePath)]) :*: S1 ('MetaSel ('Just "compOrderLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId])))))
Show ElaboratedComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary ElaboratedComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq ElaboratedComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedComponent # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedComponent = D1 ('MetaData "ElaboratedComponent" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedComponent" 'PrefixI 'True) (((S1 ('MetaSel ('Just "compSolverName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Component) :*: S1 ('MetaSel ('Just "compComponentName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ComponentName))) :*: (S1 ('MetaSel ('Just "compLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ConfiguredId]) :*: S1 ('MetaSel ('Just "compLinkedLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [OpenUnitId]))) :*: ((S1 ('MetaSel ('Just "compExeDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ConfiguredId]) :*: S1 ('MetaSel ('Just "compPkgConfigDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PkgconfigName, Maybe PkgconfigVersion)])) :*: (S1 ('MetaSel ('Just "compExeDependencyPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(ConfiguredId, FilePath)]) :*: S1 ('MetaSel ('Just "compOrderLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId])))))

data ElaboratedPackage #

Constructors

ElaboratedPackage 

Fields

Instances

Instances details
Structured ElaboratedPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic ElaboratedPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep ElaboratedPackage 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedPackage = D1 ('MetaData "ElaboratedPackage" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedPackage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pkgInstalledId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InstalledPackageId) :*: (S1 ('MetaSel ('Just "pkgLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [ConfiguredId])) :*: S1 ('MetaSel ('Just "pkgDependsOnSelfLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [()])))) :*: ((S1 ('MetaSel ('Just "pkgExeDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [ConfiguredId])) :*: S1 ('MetaSel ('Just "pkgExeDependencyPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [(ConfiguredId, FilePath)]))) :*: (S1 ('MetaSel ('Just "pkgPkgConfigDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PkgconfigName, Maybe PkgconfigVersion)]) :*: S1 ('MetaSel ('Just "pkgStanzasEnabled") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OptionalStanzaSet)))))
Show ElaboratedPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary ElaboratedPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq ElaboratedPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedPackage # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedPackage = D1 ('MetaData "ElaboratedPackage" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedPackage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pkgInstalledId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InstalledPackageId) :*: (S1 ('MetaSel ('Just "pkgLibDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [ConfiguredId])) :*: S1 ('MetaSel ('Just "pkgDependsOnSelfLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [()])))) :*: ((S1 ('MetaSel ('Just "pkgExeDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [ConfiguredId])) :*: S1 ('MetaSel ('Just "pkgExeDependencyPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ComponentDeps [(ConfiguredId, FilePath)]))) :*: (S1 ('MetaSel ('Just "pkgPkgConfigDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PkgconfigName, Maybe PkgconfigVersion)]) :*: S1 ('MetaSel ('Just "pkgStanzasEnabled") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OptionalStanzaSet)))))

pkgOrderDependencies :: ElaboratedPackage -> ComponentDeps [UnitId] #

See elabOrderDependencies. This gives the unflattened version, which can be useful in some circumstances.

data ElaboratedSharedConfig #

Constructors

ElaboratedSharedConfig 

Fields

Instances

Instances details
Structured ElaboratedSharedConfig # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic ElaboratedSharedConfig # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep ElaboratedSharedConfig 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedSharedConfig = D1 ('MetaData "ElaboratedSharedConfig" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedSharedConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pkgConfigPlatform") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Platform) :*: S1 ('MetaSel ('Just "pkgConfigCompiler") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Compiler)) :*: (S1 ('MetaSel ('Just "pkgConfigCompilerProgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProgramDb) :*: S1 ('MetaSel ('Just "pkgConfigReplOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ReplOptions))))
Show ElaboratedSharedConfig # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary ElaboratedSharedConfig # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedSharedConfig # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ElaboratedSharedConfig = D1 ('MetaData "ElaboratedSharedConfig" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ElaboratedSharedConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pkgConfigPlatform") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Platform) :*: S1 ('MetaSel ('Just "pkgConfigCompiler") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Compiler)) :*: (S1 ('MetaSel ('Just "pkgConfigCompilerProgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProgramDb) :*: S1 ('MetaSel ('Just "pkgConfigReplOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ReplOptions))))

data BuildStyle #

This is used in the install plan to indicate how the package will be built.

Constructors

BuildAndInstall

The classic approach where the package is built, then the files installed into some location and the result registered in a package db.

If the package came from a tarball then it's built in a temp dir and the results discarded.

BuildInplaceOnly

The package is built, but the files are not installed anywhere, rather the build dir is kept and the package is registered inplace.

Such packages can still subsequently be installed.

Typically BuildAndInstall packages will only depend on other BuildAndInstall style packages and not on BuildInplaceOnly ones.

Instances

Instances details
Structured BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Monoid BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Semigroup BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep BuildStyle 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep BuildStyle = D1 ('MetaData "BuildStyle" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "BuildAndInstall" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BuildInplaceOnly" 'PrefixI 'False) (U1 :: Type -> Type))
Show BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep BuildStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep BuildStyle = D1 ('MetaData "BuildStyle" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "BuildAndInstall" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BuildInplaceOnly" 'PrefixI 'False) (U1 :: Type -> Type))

Build targets

data ComponentTarget #

Specific targets within a package or component to act on e.g. to build, haddock or open a repl.

Instances

Instances details
Structured ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep ComponentTarget 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ComponentTarget = D1 ('MetaData "ComponentTarget" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ComponentTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubComponentTarget)))
Show ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Ord ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ComponentTarget # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep ComponentTarget = D1 ('MetaData "ComponentTarget" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "ComponentTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubComponentTarget)))

showComponentTarget :: PackageId -> ComponentTarget -> String #

Unambiguously render a ComponentTarget, e.g., to pass to a Cabal Setup script.

data SubComponentTarget #

Either the component as a whole or detail about a file or module target within a component.

Constructors

WholeComponent

The component as a whole

ModuleTarget ModuleName

A specific module within a component.

FileTarget FilePath

A specific file within a component. Note that this does not carry the file extension.

Instances

Instances details
Structured SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

Generic SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

Associated Types

type Rep SubComponentTarget 
Instance details

Defined in Distribution.Client.TargetSelector

type Rep SubComponentTarget = D1 ('MetaData "SubComponentTarget" "Distribution.Client.TargetSelector" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "WholeComponent" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ModuleTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :+: C1 ('MetaCons "FileTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath))))
Show SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

Binary SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

Eq SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

Ord SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

type Rep SubComponentTarget # 
Instance details

Defined in Distribution.Client.TargetSelector

type Rep SubComponentTarget = D1 ('MetaData "SubComponentTarget" "Distribution.Client.TargetSelector" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) (C1 ('MetaCons "WholeComponent" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ModuleTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :+: C1 ('MetaCons "FileTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath))))

Setup script

data SetupScriptStyle #

There are four major cases for Setup.hs handling:

  1. build-type Custom with a custom-setup section
  2. build-type Custom without a custom-setup section
  3. build-type not Custom with cabal-version > $our-cabal-version
  4. build-type not Custom with cabal-version <= $our-cabal-version

It's also worth noting that packages specifying cabal-version: >= 1.23 or later that have build-type Custom will always have a custom-setup section. Therefore in case 2, the specified cabal-version will always be less than 1.23.

In cases 1 and 2 we obviously have to build an external Setup.hs script, while in case 4 we can use the internal library API. In case 3 we also have to build an external Setup.hs script because the package needs a later Cabal lib version than we can support internally.

Instances

Instances details
Structured SetupScriptStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Generic SetupScriptStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Associated Types

type Rep SetupScriptStyle 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep SetupScriptStyle = D1 ('MetaData "SetupScriptStyle" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) ((C1 ('MetaCons "SetupCustomExplicitDeps" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SetupCustomImplicitDeps" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SetupNonCustomExternalLib" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SetupNonCustomInternalLib" 'PrefixI 'False) (U1 :: Type -> Type)))
Show SetupScriptStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Binary SetupScriptStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

Eq SetupScriptStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep SetupScriptStyle # 
Instance details

Defined in Distribution.Client.ProjectPlanning.Types

type Rep SetupScriptStyle = D1 ('MetaData "SetupScriptStyle" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.2.1-EH6AEtqwlbKE3rh89dIk81" 'False) ((C1 ('MetaCons "SetupCustomExplicitDeps" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SetupCustomImplicitDeps" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SetupNonCustomExternalLib" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SetupNonCustomInternalLib" 'PrefixI 'False) (U1 :: Type -> Type)))