Safe Haskell | None |
---|---|
Language | Haskell2010 |
Distribution.Client.ProjectPlanning.Types
Description
Types used while planning how to build everything in a project.
Primarily this is the ElaboratedInstallPlan
.
Synopsis
- data SolverInstallPlan
- type ElaboratedInstallPlan = GenericInstallPlan InstalledPackageInfo ElaboratedConfiguredPackage
- normaliseConfiguredPackage :: ElaboratedSharedConfig -> ElaboratedConfiguredPackage -> ElaboratedConfiguredPackage
- data ElaboratedConfiguredPackage = ElaboratedConfiguredPackage {
- elabUnitId :: UnitId
- elabComponentId :: ComponentId
- elabInstantiatedWith :: Map ModuleName Module
- elabLinkedInstantiatedWith :: Map ModuleName OpenModule
- elabIsCanonical :: Bool
- elabPkgSourceId :: PackageId
- elabModuleShape :: ModuleShape
- elabFlagAssignment :: FlagAssignment
- elabFlagDefaults :: FlagAssignment
- elabPkgDescription :: PackageDescription
- elabPkgSourceLocation :: PackageLocation (Maybe FilePath)
- elabPkgSourceHash :: Maybe PackageSourceHash
- elabLocalToProject :: Bool
- elabBuildStyle :: BuildStyle
- elabEnabledSpec :: ComponentRequestedSpec
- elabStanzasAvailable :: OptionalStanzaSet
- elabStanzasRequested :: OptionalStanzaMap (Maybe Bool)
- elabPackageDbs :: [Maybe PackageDB]
- elabSetupPackageDBStack :: PackageDBStack
- elabBuildPackageDBStack :: PackageDBStack
- elabRegisterPackageDBStack :: PackageDBStack
- elabInplaceSetupPackageDBStack :: PackageDBStack
- elabInplaceBuildPackageDBStack :: PackageDBStack
- elabInplaceRegisterPackageDBStack :: PackageDBStack
- elabPkgDescriptionOverride :: Maybe CabalFileText
- elabVanillaLib :: Bool
- elabSharedLib :: Bool
- elabStaticLib :: Bool
- elabDynExe :: Bool
- elabFullyStaticExe :: Bool
- elabGHCiLib :: Bool
- elabProfLib :: Bool
- elabProfExe :: Bool
- elabProfLibDetail :: ProfDetailLevel
- elabProfExeDetail :: ProfDetailLevel
- elabCoverage :: Bool
- elabOptimization :: OptimisationLevel
- elabSplitObjs :: Bool
- elabSplitSections :: Bool
- elabStripLibs :: Bool
- elabStripExes :: Bool
- elabDebugInfo :: DebugInfoLevel
- elabDumpBuildInfo :: DumpBuildInfo
- elabProgramPaths :: Map String FilePath
- elabProgramArgs :: Map String [String]
- elabProgramPathExtra :: [FilePath]
- elabConfigureScriptArgs :: [String]
- elabExtraLibDirs :: [FilePath]
- elabExtraLibDirsStatic :: [FilePath]
- elabExtraFrameworkDirs :: [FilePath]
- elabExtraIncludeDirs :: [FilePath]
- elabProgPrefix :: Maybe PathTemplate
- elabProgSuffix :: Maybe PathTemplate
- elabInstallDirs :: InstallDirs FilePath
- elabHaddockHoogle :: Bool
- elabHaddockHtml :: Bool
- elabHaddockHtmlLocation :: Maybe String
- elabHaddockForeignLibs :: Bool
- elabHaddockForHackage :: HaddockTarget
- elabHaddockExecutables :: Bool
- elabHaddockTestSuites :: Bool
- elabHaddockBenchmarks :: Bool
- elabHaddockInternal :: Bool
- elabHaddockCss :: Maybe FilePath
- elabHaddockLinkedSource :: Bool
- elabHaddockQuickJump :: Bool
- elabHaddockHscolourCss :: Maybe FilePath
- elabHaddockContents :: Maybe PathTemplate
- elabHaddockIndex :: Maybe PathTemplate
- elabHaddockBaseUrl :: Maybe String
- elabHaddockLib :: Maybe String
- elabTestMachineLog :: Maybe PathTemplate
- elabTestHumanLog :: Maybe PathTemplate
- elabTestShowDetails :: Maybe TestShowDetails
- elabTestKeepTix :: Bool
- elabTestWrapper :: Maybe FilePath
- elabTestFailWhenNoTestSuites :: Bool
- elabTestTestOptions :: [PathTemplate]
- elabBenchmarkOptions :: [PathTemplate]
- elabSetupScriptStyle :: SetupScriptStyle
- elabSetupScriptCliVersion :: Version
- elabConfigureTargets :: [ComponentTarget]
- elabBuildTargets :: [ComponentTarget]
- elabTestTargets :: [ComponentTarget]
- elabBenchTargets :: [ComponentTarget]
- elabReplTarget :: Maybe ComponentTarget
- elabHaddockTargets :: [ComponentTarget]
- elabBuildHaddocks :: Bool
- elabPkgOrComp :: ElaboratedPackageOrComponent
- elabDistDirParams :: ElaboratedSharedConfig -> ElaboratedConfiguredPackage -> DistDirParams
- elabExeDependencyPaths :: ElaboratedConfiguredPackage -> [FilePath]
- elabLibDependencies :: ElaboratedConfiguredPackage -> [ConfiguredId]
- elabOrderLibDependencies :: ElaboratedConfiguredPackage -> [UnitId]
- elabExeDependencies :: ElaboratedConfiguredPackage -> [ComponentId]
- elabOrderExeDependencies :: ElaboratedConfiguredPackage -> [UnitId]
- elabSetupDependencies :: ElaboratedConfiguredPackage -> [ConfiguredId]
- elabPkgConfigDependencies :: ElaboratedConfiguredPackage -> [(PkgconfigName, Maybe PkgconfigVersion)]
- elabInplaceDependencyBuildCacheFiles :: DistDirLayout -> ElaboratedSharedConfig -> ElaboratedInstallPlan -> ElaboratedConfiguredPackage -> [FilePath]
- elabRequiresRegistration :: ElaboratedConfiguredPackage -> Bool
- dataDirsEnvironmentForPlan :: DistDirLayout -> ElaboratedInstallPlan -> [(String, Maybe FilePath)]
- elabPlanPackageName :: Verbosity -> ElaboratedPlanPackage -> String
- elabConfiguredName :: Verbosity -> ElaboratedConfiguredPackage -> String
- elabComponentName :: ElaboratedConfiguredPackage -> Maybe ComponentName
- data ElaboratedPackageOrComponent
- data ElaboratedComponent = ElaboratedComponent {
- compSolverName :: Component
- compComponentName :: Maybe ComponentName
- compLibDependencies :: [ConfiguredId]
- compLinkedLibDependencies :: [OpenUnitId]
- compExeDependencies :: [ConfiguredId]
- compPkgConfigDependencies :: [(PkgconfigName, Maybe PkgconfigVersion)]
- compExeDependencyPaths :: [(ConfiguredId, FilePath)]
- compOrderLibDependencies :: [UnitId]
- data ElaboratedPackage = ElaboratedPackage {
- pkgInstalledId :: InstalledPackageId
- pkgLibDependencies :: ComponentDeps [ConfiguredId]
- pkgDependsOnSelfLib :: ComponentDeps [()]
- pkgExeDependencies :: ComponentDeps [ConfiguredId]
- pkgExeDependencyPaths :: ComponentDeps [(ConfiguredId, FilePath)]
- pkgPkgConfigDependencies :: [(PkgconfigName, Maybe PkgconfigVersion)]
- pkgStanzasEnabled :: OptionalStanzaSet
- pkgOrderDependencies :: ElaboratedPackage -> ComponentDeps [UnitId]
- type ElaboratedPlanPackage = GenericPlanPackage InstalledPackageInfo ElaboratedConfiguredPackage
- data ElaboratedSharedConfig = ElaboratedSharedConfig {
- pkgConfigPlatform :: Platform
- pkgConfigCompiler :: Compiler
- pkgConfigCompilerProgs :: ProgramDb
- pkgConfigReplOptions :: ReplOptions
- type ElaboratedReadyPackage = GenericReadyPackage ElaboratedConfiguredPackage
- data BuildStyle
- type CabalFileText = ByteString
- data ComponentTarget = ComponentTarget ComponentName SubComponentTarget
- showComponentTarget :: PackageId -> ComponentTarget -> String
- showTestComponentTarget :: PackageId -> ComponentTarget -> Maybe String
- showBenchComponentTarget :: PackageId -> ComponentTarget -> Maybe String
- data SubComponentTarget
- = WholeComponent
- | ModuleTarget ModuleName
- | FileTarget FilePath
- isSubLibComponentTarget :: ComponentTarget -> Bool
- isForeignLibComponentTarget :: ComponentTarget -> Bool
- isExeComponentTarget :: ComponentTarget -> Bool
- isTestComponentTarget :: ComponentTarget -> Bool
- isBenchComponentTarget :: ComponentTarget -> Bool
- componentOptionalStanza :: Component -> Maybe OptionalStanza
- data SetupScriptStyle
Documentation
data SolverInstallPlan Source #
Instances
Structured SolverInstallPlan Source # | |||||
Defined in Distribution.Client.SolverInstallPlan Methods structure :: Proxy SolverInstallPlan -> Structure structureHash' :: Tagged SolverInstallPlan MD5 | |||||
Generic SolverInstallPlan Source # | |||||
Defined in Distribution.Client.SolverInstallPlan Associated Types
Methods from :: SolverInstallPlan -> Rep SolverInstallPlan x to :: Rep SolverInstallPlan x -> SolverInstallPlan | |||||
Binary SolverInstallPlan Source # | |||||
Defined in Distribution.Client.SolverInstallPlan Methods put :: SolverInstallPlan -> Put # get :: Get SolverInstallPlan # putList :: [SolverInstallPlan] -> Put # | |||||
type Rep SolverInstallPlan Source # | |||||
Defined in Distribution.Client.SolverInstallPlan type Rep SolverInstallPlan |
Elaborated install plan types
type ElaboratedInstallPlan = GenericInstallPlan InstalledPackageInfo ElaboratedConfiguredPackage Source #
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).
normaliseConfiguredPackage :: ElaboratedSharedConfig -> ElaboratedConfiguredPackage -> ElaboratedConfiguredPackage Source #
data ElaboratedConfiguredPackage Source #
Constructors
ElaboratedConfiguredPackage | |
Fields
|
Instances
IsNode ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
Methods nodeKey :: ElaboratedConfiguredPackage -> Key ElaboratedConfiguredPackage nodeNeighbors :: ElaboratedConfiguredPackage -> [Key ElaboratedConfiguredPackage] | |||||
HasUnitId ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods installedUnitId :: ElaboratedConfiguredPackage -> UnitId | |||||
Package ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods packageId :: ElaboratedConfiguredPackage -> PackageIdentifier | |||||
Structured ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods structure :: Proxy ElaboratedConfiguredPackage -> Structure structureHash' :: Tagged ElaboratedConfiguredPackage MD5 | |||||
Generic ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
Methods from :: ElaboratedConfiguredPackage -> Rep ElaboratedConfiguredPackage x to :: Rep ElaboratedConfiguredPackage x -> ElaboratedConfiguredPackage | |||||
Show ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods showsPrec :: Int -> ElaboratedConfiguredPackage -> ShowS # show :: ElaboratedConfiguredPackage -> String # showList :: [ElaboratedConfiguredPackage] -> ShowS # | |||||
Binary ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods put :: ElaboratedConfiguredPackage -> Put # get :: Get ElaboratedConfiguredPackage # putList :: [ElaboratedConfiguredPackage] -> Put # | |||||
HasConfiguredId ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods configuredId :: ElaboratedConfiguredPackage -> ConfiguredId Source # | |||||
Eq ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods (==) :: ElaboratedConfiguredPackage -> ElaboratedConfiguredPackage -> Bool # (/=) :: ElaboratedConfiguredPackage -> ElaboratedConfiguredPackage -> Bool # | |||||
type Key ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Key ElaboratedConfiguredPackage = UnitId | |||||
type Rep ElaboratedConfiguredPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Rep ElaboratedConfiguredPackage = D1 ('MetaData "ElaboratedConfiguredPackage" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" '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))))))))) |
elabDistDirParams :: ElaboratedSharedConfig -> ElaboratedConfiguredPackage -> DistDirParams Source #
elabExeDependencyPaths :: ElaboratedConfiguredPackage -> [FilePath] Source #
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] Source #
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] Source #
Like elabOrderDependencies
, but only returns dependencies on
libraries.
elabExeDependencies :: ElaboratedConfiguredPackage -> [ComponentId] Source #
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] Source #
Like elabOrderDependencies
, but only returns dependencies on
executables. (This coincides with elabExeDependencies
.)
elabSetupDependencies :: ElaboratedConfiguredPackage -> [ConfiguredId] Source #
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.)
elabPkgConfigDependencies :: ElaboratedConfiguredPackage -> [(PkgconfigName, Maybe PkgconfigVersion)] Source #
elabInplaceDependencyBuildCacheFiles :: DistDirLayout -> ElaboratedSharedConfig -> ElaboratedInstallPlan -> ElaboratedConfiguredPackage -> [FilePath] Source #
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 Source #
The packagecomponent containsis a library and so must be registered
dataDirsEnvironmentForPlan :: DistDirLayout -> ElaboratedInstallPlan -> [(String, Maybe FilePath)] Source #
Construct the environment needed for the data files to work.
This consists of a separate *_datadir
variable for each
inplace package in the plan.
elabPlanPackageName :: Verbosity -> ElaboratedPlanPackage -> String Source #
User-friendly display string for an ElaboratedPlanPackage
.
elabConfiguredName :: Verbosity -> ElaboratedConfiguredPackage -> String Source #
A user-friendly descriptor for an ElaboratedConfiguredPackage
.
data ElaboratedPackageOrComponent Source #
Constructors
ElabPackage ElaboratedPackage | |
ElabComponent ElaboratedComponent |
Instances
data ElaboratedComponent Source #
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
|
Instances
Structured ElaboratedComponent Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods structure :: Proxy ElaboratedComponent -> Structure structureHash' :: Tagged ElaboratedComponent MD5 | |||||
Generic ElaboratedComponent Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
Methods from :: ElaboratedComponent -> Rep ElaboratedComponent x to :: Rep ElaboratedComponent x -> ElaboratedComponent | |||||
Show ElaboratedComponent Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods showsPrec :: Int -> ElaboratedComponent -> ShowS # show :: ElaboratedComponent -> String # showList :: [ElaboratedComponent] -> ShowS # | |||||
Binary ElaboratedComponent Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods put :: ElaboratedComponent -> Put # get :: Get ElaboratedComponent # putList :: [ElaboratedComponent] -> Put # | |||||
Eq ElaboratedComponent Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods (==) :: ElaboratedComponent -> ElaboratedComponent -> Bool # (/=) :: ElaboratedComponent -> ElaboratedComponent -> Bool # | |||||
type Rep ElaboratedComponent Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Rep ElaboratedComponent = D1 ('MetaData "ElaboratedComponent" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" '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 Source #
Constructors
ElaboratedPackage | |
Fields
|
Instances
Structured ElaboratedPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods structure :: Proxy ElaboratedPackage -> Structure structureHash' :: Tagged ElaboratedPackage MD5 | |||||
Generic ElaboratedPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
Methods from :: ElaboratedPackage -> Rep ElaboratedPackage x to :: Rep ElaboratedPackage x -> ElaboratedPackage | |||||
Show ElaboratedPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods showsPrec :: Int -> ElaboratedPackage -> ShowS # show :: ElaboratedPackage -> String # showList :: [ElaboratedPackage] -> ShowS # | |||||
Binary ElaboratedPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods put :: ElaboratedPackage -> Put # get :: Get ElaboratedPackage # putList :: [ElaboratedPackage] -> Put # | |||||
Eq ElaboratedPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods (==) :: ElaboratedPackage -> ElaboratedPackage -> Bool # (/=) :: ElaboratedPackage -> ElaboratedPackage -> Bool # | |||||
type Rep ElaboratedPackage Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Rep ElaboratedPackage = D1 ('MetaData "ElaboratedPackage" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" '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] Source #
See elabOrderDependencies
. This gives the unflattened version,
which can be useful in some circumstances.
type ElaboratedPlanPackage = GenericPlanPackage InstalledPackageInfo ElaboratedConfiguredPackage Source #
data ElaboratedSharedConfig Source #
Constructors
ElaboratedSharedConfig | |
Fields
|
Instances
data BuildStyle Source #
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 |
Instances
Structured BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types | |||||
Monoid BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods mempty :: BuildStyle # mappend :: BuildStyle -> BuildStyle -> BuildStyle # mconcat :: [BuildStyle] -> BuildStyle # | |||||
Semigroup BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods (<>) :: BuildStyle -> BuildStyle -> BuildStyle # sconcat :: NonEmpty BuildStyle -> BuildStyle stimes :: Integral b => b -> BuildStyle -> BuildStyle | |||||
Generic BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
| |||||
Show BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods showsPrec :: Int -> BuildStyle -> ShowS # show :: BuildStyle -> String # showList :: [BuildStyle] -> ShowS # | |||||
Binary BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types | |||||
Eq BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types | |||||
type Rep BuildStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Rep BuildStyle = D1 ('MetaData "BuildStyle" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" 'False) (C1 ('MetaCons "BuildAndInstall" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BuildInplaceOnly" 'PrefixI 'False) (U1 :: Type -> Type)) |
type CabalFileText = ByteString Source #
Build targets
data ComponentTarget Source #
Specific targets within a package or component to act on e.g. to build, haddock or open a repl.
Constructors
ComponentTarget ComponentName SubComponentTarget |
Instances
Structured ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types | |||||
Generic ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
Methods from :: ComponentTarget -> Rep ComponentTarget x to :: Rep ComponentTarget x -> ComponentTarget | |||||
Show ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods showsPrec :: Int -> ComponentTarget -> ShowS # show :: ComponentTarget -> String # showList :: [ComponentTarget] -> ShowS # | |||||
Binary ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods put :: ComponentTarget -> Put # get :: Get ComponentTarget # putList :: [ComponentTarget] -> Put # | |||||
Eq ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods (==) :: ComponentTarget -> ComponentTarget -> Bool # (/=) :: ComponentTarget -> ComponentTarget -> Bool # | |||||
Ord ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods compare :: ComponentTarget -> ComponentTarget -> Ordering # (<) :: ComponentTarget -> ComponentTarget -> Bool # (<=) :: ComponentTarget -> ComponentTarget -> Bool # (>) :: ComponentTarget -> ComponentTarget -> Bool # (>=) :: ComponentTarget -> ComponentTarget -> Bool # max :: ComponentTarget -> ComponentTarget -> ComponentTarget # min :: ComponentTarget -> ComponentTarget -> ComponentTarget # | |||||
type Rep ComponentTarget Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Rep ComponentTarget = D1 ('MetaData "ComponentTarget" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" '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 Source #
Unambiguously render a ComponentTarget
, e.g., to pass
to a Cabal Setup script.
data SubComponentTarget Source #
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
Structured SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector Methods structure :: Proxy SubComponentTarget -> Structure structureHash' :: Tagged SubComponentTarget MD5 | |||||
Generic SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector Associated Types
Methods from :: SubComponentTarget -> Rep SubComponentTarget x to :: Rep SubComponentTarget x -> SubComponentTarget | |||||
Show SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector Methods showsPrec :: Int -> SubComponentTarget -> ShowS # show :: SubComponentTarget -> String # showList :: [SubComponentTarget] -> ShowS # | |||||
Binary SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector Methods put :: SubComponentTarget -> Put # get :: Get SubComponentTarget # putList :: [SubComponentTarget] -> Put # | |||||
Eq SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector Methods (==) :: SubComponentTarget -> SubComponentTarget -> Bool # (/=) :: SubComponentTarget -> SubComponentTarget -> Bool # | |||||
Ord SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector Methods compare :: SubComponentTarget -> SubComponentTarget -> Ordering # (<) :: SubComponentTarget -> SubComponentTarget -> Bool # (<=) :: SubComponentTarget -> SubComponentTarget -> Bool # (>) :: SubComponentTarget -> SubComponentTarget -> Bool # (>=) :: SubComponentTarget -> SubComponentTarget -> Bool # max :: SubComponentTarget -> SubComponentTarget -> SubComponentTarget # min :: SubComponentTarget -> SubComponentTarget -> SubComponentTarget # | |||||
type Rep SubComponentTarget Source # | |||||
Defined in Distribution.Client.TargetSelector type Rep SubComponentTarget = D1 ('MetaData "SubComponentTarget" "Distribution.Client.TargetSelector" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" '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)))) |
componentOptionalStanza :: Component -> Maybe OptionalStanza Source #
Setup script
data SetupScriptStyle Source #
There are four major cases for Setup.hs handling:
build-type
Custom with acustom-setup
sectionbuild-type
Custom without acustom-setup
sectionbuild-type
not Custom withcabal-version > $our-cabal-version
build-type
not Custom withcabal-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.
Constructors
SetupCustomExplicitDeps | |
SetupCustomImplicitDeps | |
SetupNonCustomExternalLib | |
SetupNonCustomInternalLib |
Instances
Structured SetupScriptStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods structure :: Proxy SetupScriptStyle -> Structure structureHash' :: Tagged SetupScriptStyle MD5 | |||||
Generic SetupScriptStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Associated Types
Methods from :: SetupScriptStyle -> Rep SetupScriptStyle x to :: Rep SetupScriptStyle x -> SetupScriptStyle | |||||
Show SetupScriptStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods showsPrec :: Int -> SetupScriptStyle -> ShowS # show :: SetupScriptStyle -> String # showList :: [SetupScriptStyle] -> ShowS # | |||||
Binary SetupScriptStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods put :: SetupScriptStyle -> Put # get :: Get SetupScriptStyle # putList :: [SetupScriptStyle] -> Put # | |||||
Eq SetupScriptStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types Methods (==) :: SetupScriptStyle -> SetupScriptStyle -> Bool # (/=) :: SetupScriptStyle -> SetupScriptStyle -> Bool # | |||||
type Rep SetupScriptStyle Source # | |||||
Defined in Distribution.Client.ProjectPlanning.Types type Rep SetupScriptStyle = D1 ('MetaData "SetupScriptStyle" "Distribution.Client.ProjectPlanning.Types" "cabal-install-3.10.3.0-EKGI7s40ZdhEzujYLUb5dI" '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))) |