cabal-install-3.10.1.0: The command-line interface for Cabal and Hackage.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Client.ProjectConfig.Types

Description

Handling project configuration, types.

Synopsis

Types for project config

data ProjectConfig Source #

This type corresponds directly to what can be written in the cabal.project file. Other sources of configuration can also be injected into this type, such as the user-wide config file and the command line of cabal configure or cabal build.

Since it corresponds to the external project file it is an instance of Monoid and all the fields can be empty. This also means there has to be a step where we resolve configuration. At a minimum resolving means applying defaults but it can also mean merging information from multiple sources. For example for package-specific configuration the project file can specify configuration that applies to all local packages, and then additional configuration for a specific package.

Future directions: multiple profiles, conditionals. If we add these features then the gap between configuration as written in the config file and resolved settings we actually use will become even bigger.

Constructors

ProjectConfig 

Fields

Instances

Instances details
Structured ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Monoid ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Semigroup ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Generic ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep ProjectConfig :: Type -> Type #

Show ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Binary ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Eq ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfig = D1 ('MetaData "ProjectConfig" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'False) (C1 ('MetaCons "ProjectConfig" 'PrefixI 'True) (((S1 ('MetaSel ('Just "projectPackages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]) :*: S1 ('MetaSel ('Just "projectPackagesOptional") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])) :*: (S1 ('MetaSel ('Just "projectPackagesRepo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SourceRepoList]) :*: (S1 ('MetaSel ('Just "projectPackagesNamed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PackageVersionConstraint]) :*: S1 ('MetaSel ('Just "projectConfigBuildOnly") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProjectConfigBuildOnly)))) :*: ((S1 ('MetaSel ('Just "projectConfigShared") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProjectConfigShared) :*: S1 ('MetaSel ('Just "projectConfigProvenance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set ProjectConfigProvenance))) :*: (S1 ('MetaSel ('Just "projectConfigAllPackages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageConfig) :*: (S1 ('MetaSel ('Just "projectConfigLocalPackages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageConfig) :*: S1 ('MetaSel ('Just "projectConfigSpecificPackage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MapMappend PackageName PackageConfig)))))))

data ProjectConfigBuildOnly Source #

That part of the project configuration that only affects how we build and not the value of the things we build. This means this information does not need to be tracked for changes since it does not affect the outcome.

Instances

Instances details
Structured ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Monoid ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Semigroup ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Generic ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep ProjectConfigBuildOnly :: Type -> Type #

Show ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Binary ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Eq ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfigBuildOnly Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfigBuildOnly = D1 ('MetaData "ProjectConfigBuildOnly" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'False) (C1 ('MetaCons "ProjectConfigBuildOnly" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "projectConfigVerbosity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Verbosity)) :*: S1 ('MetaSel ('Just "projectConfigDryRun") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "projectConfigOnlyDeps") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "projectConfigOnlyDownload") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "projectConfigSummaryFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubList PathTemplate)) :*: S1 ('MetaSel ('Just "projectConfigLogFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate))) :*: (S1 ('MetaSel ('Just "projectConfigBuildReports") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ReportLevel)) :*: (S1 ('MetaSel ('Just "projectConfigReportPlanningFailure") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "projectConfigSymlinkBinDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)))))) :*: (((S1 ('MetaSel ('Just "projectConfigNumJobs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag (Maybe Int))) :*: S1 ('MetaSel ('Just "projectConfigKeepGoing") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "projectConfigOfflineMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "projectConfigKeepTempFiles") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "projectConfigHttpTransport") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "projectConfigIgnoreExpiry") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "projectConfigCacheDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: (S1 ('MetaSel ('Just "projectConfigLogsDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "projectConfigClientInstallFlags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ClientInstallFlags)))))))

data ProjectConfigShared Source #

Project configuration that is shared between all packages in the project. In particular this includes configuration that affects the solver.

Constructors

ProjectConfigShared 

Fields

Instances

Instances details
Structured ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Monoid ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Semigroup ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Generic ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep ProjectConfigShared :: Type -> Type #

Show ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Binary ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Eq ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfigShared Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfigShared = D1 ('MetaData "ProjectConfigShared" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'False) (C1 ('MetaCons "ProjectConfigShared" 'PrefixI 'True) (((((S1 ('MetaSel ('Just "projectConfigDistDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "projectConfigConfigFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath))) :*: (S1 ('MetaSel ('Just "projectConfigProjectFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "projectConfigIgnoreProject") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "projectConfigHcFlavor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag CompilerFlavor)) :*: S1 ('MetaSel ('Just "projectConfigHcPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath))) :*: (S1 ('MetaSel ('Just "projectConfigHcPkg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "projectConfigHaddockIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate))))) :*: (((S1 ('MetaSel ('Just "projectConfigInstallDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (InstallDirs (Flag PathTemplate))) :*: S1 ('MetaSel ('Just "projectConfigPackageDBs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe PackageDB])) :*: (S1 ('MetaSel ('Just "projectConfigRemoteRepos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubList RemoteRepo)) :*: S1 ('MetaSel ('Just "projectConfigLocalNoIndexRepos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubList LocalRepo)))) :*: ((S1 ('MetaSel ('Just "projectConfigActiveRepos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ActiveRepos)) :*: S1 ('MetaSel ('Just "projectConfigIndexState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag TotalIndexState))) :*: (S1 ('MetaSel ('Just "projectConfigStoreDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: (S1 ('MetaSel ('Just "projectConfigConstraints") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UserConstraint, ConstraintSource)]) :*: S1 ('MetaSel ('Just "projectConfigPreferences") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PackageVersionConstraint])))))) :*: ((((S1 ('MetaSel ('Just "projectConfigCabalVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Version)) :*: S1 ('MetaSel ('Just "projectConfigSolver") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PreSolver))) :*: (S1 ('MetaSel ('Just "projectConfigAllowOlder") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe AllowOlder)) :*: S1 ('MetaSel ('Just "projectConfigAllowNewer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe AllowNewer)))) :*: ((S1 ('MetaSel ('Just "projectConfigWriteGhcEnvironmentFilesPolicy") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag WriteGhcEnvironmentFilesPolicy)) :*: S1 ('MetaSel ('Just "projectConfigMaxBackjumps") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Int))) :*: (S1 ('MetaSel ('Just "projectConfigReorderGoals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ReorderGoals)) :*: S1 ('MetaSel ('Just "projectConfigCountConflicts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag CountConflicts))))) :*: (((S1 ('MetaSel ('Just "projectConfigFineGrainedConflicts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FineGrainedConflicts)) :*: S1 ('MetaSel ('Just "projectConfigMinimizeConflictSet") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag MinimizeConflictSet))) :*: (S1 ('MetaSel ('Just "projectConfigStrongFlags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag StrongFlags)) :*: S1 ('MetaSel ('Just "projectConfigAllowBootLibInstalls") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag AllowBootLibInstalls)))) :*: ((S1 ('MetaSel ('Just "projectConfigOnlyConstrained") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag OnlyConstrained)) :*: S1 ('MetaSel ('Just "projectConfigPerComponent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "projectConfigIndependentGoals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag IndependentGoals)) :*: (S1 ('MetaSel ('Just "projectConfigPreferOldest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PreferOldest)) :*: S1 ('MetaSel ('Just "projectConfigProgPathExtra") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubList FilePath)))))))))

data ProjectConfigProvenance Source #

Specifies the provenance of project configuration, whether defaults were used or if the configuration was read from an explicit file path.

Constructors

Implicit

The configuration is implicit due to no explicit configuration being found. See readProjectConfig for how implicit configuration is determined.

Explicit FilePath

The path the project configuration was explicitly read from. | The configuration was explicitly read from the specified FilePath.

Instances

Instances details
Structured ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Generic ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep ProjectConfigProvenance :: Type -> Type #

Show ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Binary ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Eq ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Ord ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfigProvenance Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep ProjectConfigProvenance = D1 ('MetaData "ProjectConfigProvenance" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'False) (C1 ('MetaCons "Implicit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Explicit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath)))

data PackageConfig Source #

Project configuration that is specific to each package, that is where we can in principle have different values for different packages in the same project.

Constructors

PackageConfig 

Fields

Instances

Instances details
Structured PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Monoid PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Semigroup PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Generic PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep PackageConfig :: Type -> Type #

Show PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Binary PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Eq PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep PackageConfig Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep PackageConfig = D1 ('MetaData "PackageConfig" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'False) (C1 ('MetaCons "PackageConfig" 'PrefixI 'True) (((((S1 ('MetaSel ('Just "packageConfigProgramPaths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MapLast String FilePath)) :*: (S1 ('MetaSel ('Just "packageConfigProgramArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MapMappend String [String])) :*: S1 ('MetaSel ('Just "packageConfigProgramPathExtra") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NubList FilePath)))) :*: ((S1 ('MetaSel ('Just "packageConfigFlagAssignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment) :*: S1 ('MetaSel ('Just "packageConfigVanillaLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigSharedLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigStaticLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))))) :*: (((S1 ('MetaSel ('Just "packageConfigDynExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigFullyStaticExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigProf") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigProfLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "packageConfigProfExe") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigProfDetail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ProfDetailLevel))) :*: (S1 ('MetaSel ('Just "packageConfigProfLibDetail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag ProfDetailLevel)) :*: S1 ('MetaSel ('Just "packageConfigConfigureArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]))))) :*: (((S1 ('MetaSel ('Just "packageConfigOptimization") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag OptimisationLevel)) :*: (S1 ('MetaSel ('Just "packageConfigProgPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate)) :*: S1 ('MetaSel ('Just "packageConfigProgSuffix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate)))) :*: ((S1 ('MetaSel ('Just "packageConfigExtraLibDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "packageConfigExtraLibDirsStatic") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath])) :*: (S1 ('MetaSel ('Just "packageConfigExtraFrameworkDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]) :*: S1 ('MetaSel ('Just "packageConfigExtraIncludeDirs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath])))) :*: (((S1 ('MetaSel ('Just "packageConfigGHCiLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigSplitSections") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigSplitObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigStripExes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "packageConfigStripLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigTests") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigBenchmarks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigCoverage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))))))) :*: ((((S1 ('MetaSel ('Just "packageConfigRelocatable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: (S1 ('MetaSel ('Just "packageConfigDebugInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag DebugInfoLevel)) :*: S1 ('MetaSel ('Just "packageConfigDumpBuildInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag DumpBuildInfo)))) :*: ((S1 ('MetaSel ('Just "packageConfigRunTests") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigDocumentation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigHaddockHoogle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigHaddockHtml") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))))) :*: (((S1 ('MetaSel ('Just "packageConfigHaddockHtmlLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "packageConfigHaddockForeignLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigHaddockExecutables") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigHaddockTestSuites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "packageConfigHaddockBenchmarks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: S1 ('MetaSel ('Just "packageConfigHaddockInternal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigHaddockCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "packageConfigHaddockLinkedSource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))))) :*: (((S1 ('MetaSel ('Just "packageConfigHaddockQuickJump") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)) :*: (S1 ('MetaSel ('Just "packageConfigHaddockHscolourCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "packageConfigHaddockContents") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate)))) :*: ((S1 ('MetaSel ('Just "packageConfigHaddockIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate)) :*: S1 ('MetaSel ('Just "packageConfigHaddockBaseUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String))) :*: (S1 ('MetaSel ('Just "packageConfigHaddockLib") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag String)) :*: S1 ('MetaSel ('Just "packageConfigHaddockForHackage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag HaddockTarget))))) :*: (((S1 ('MetaSel ('Just "packageConfigTestHumanLog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate)) :*: S1 ('MetaSel ('Just "packageConfigTestMachineLog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag PathTemplate))) :*: (S1 ('MetaSel ('Just "packageConfigTestShowDetails") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag TestShowDetails)) :*: S1 ('MetaSel ('Just "packageConfigTestKeepTix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool)))) :*: ((S1 ('MetaSel ('Just "packageConfigTestWrapper") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag FilePath)) :*: S1 ('MetaSel ('Just "packageConfigTestFailWhenNoTestSuites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Flag Bool))) :*: (S1 ('MetaSel ('Just "packageConfigTestTestOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PathTemplate]) :*: S1 ('MetaSel ('Just "packageConfigBenchmarkOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PathTemplate]))))))))

Resolving configuration

data SolverSettings Source #

Resolved configuration for the solver. The idea is that this is easier to use than the raw configuration because in the raw configuration everything is optional (monoidial). In the BuildTimeSettings every field is filled in, if only with the defaults.

Use resolveSolverSettings to make one from the project config (by applying defaults etc).

Instances

Instances details
Structured SolverSettings Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Generic SolverSettings Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep SolverSettings :: Type -> Type #

Show SolverSettings Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Binary SolverSettings Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Eq SolverSettings Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep SolverSettings Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep SolverSettings = D1 ('MetaData "SolverSettings" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'False) (C1 ('MetaCons "SolverSettings" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "solverSettingRemoteRepos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RemoteRepo]) :*: S1 ('MetaSel ('Just "solverSettingLocalNoIndexRepos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LocalRepo])) :*: (S1 ('MetaSel ('Just "solverSettingConstraints") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UserConstraint, ConstraintSource)]) :*: (S1 ('MetaSel ('Just "solverSettingPreferences") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PackageVersionConstraint]) :*: S1 ('MetaSel ('Just "solverSettingFlagAssignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment)))) :*: ((S1 ('MetaSel ('Just "solverSettingFlagAssignments") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PackageName FlagAssignment)) :*: (S1 ('MetaSel ('Just "solverSettingCabalVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Version)) :*: S1 ('MetaSel ('Just "solverSettingSolver") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PreSolver))) :*: (S1 ('MetaSel ('Just "solverSettingAllowOlder") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AllowOlder) :*: (S1 ('MetaSel ('Just "solverSettingAllowNewer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AllowNewer) :*: S1 ('MetaSel ('Just "solverSettingMaxBackjumps") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)))))) :*: (((S1 ('MetaSel ('Just "solverSettingReorderGoals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ReorderGoals) :*: S1 ('MetaSel ('Just "solverSettingCountConflicts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CountConflicts)) :*: (S1 ('MetaSel ('Just "solverSettingFineGrainedConflicts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FineGrainedConflicts) :*: (S1 ('MetaSel ('Just "solverSettingMinimizeConflictSet") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MinimizeConflictSet) :*: S1 ('MetaSel ('Just "solverSettingStrongFlags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 StrongFlags)))) :*: ((S1 ('MetaSel ('Just "solverSettingAllowBootLibInstalls") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AllowBootLibInstalls) :*: (S1 ('MetaSel ('Just "solverSettingOnlyConstrained") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OnlyConstrained) :*: S1 ('MetaSel ('Just "solverSettingIndexState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe TotalIndexState)))) :*: (S1 ('MetaSel ('Just "solverSettingActiveRepos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ActiveRepos)) :*: (S1 ('MetaSel ('Just "solverSettingIndependentGoals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IndependentGoals) :*: S1 ('MetaSel ('Just "solverSettingPreferOldest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PreferOldest)))))))

data BuildTimeSettings Source #

Resolved configuration for things that affect how we build and not the value of the things we build. The idea is that this is easier to use than the raw configuration because in the raw configuration everything is optional (monoidial). In the BuildTimeSettings every field is filled in, if only with the defaults.

Use resolveBuildTimeSettings to make one from the project config (by applying defaults etc).

Extra useful Monoids

newtype MapLast k v Source #

Newtype wrapper for Map that provides a Monoid instance that takes the last value rather than the first value for overlapping keys.

Constructors

MapLast 

Fields

Instances

Instances details
Functor (MapLast k) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

fmap :: (a -> b) -> MapLast k a -> MapLast k b #

(<$) :: a -> MapLast k b -> MapLast k a #

(Structured k, Structured v) => Structured (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

structure :: Proxy (MapLast k v) -> Structure #

structureHash' :: Tagged (MapLast k v) MD5

Ord k => Monoid (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

mempty :: MapLast k v #

mappend :: MapLast k v -> MapLast k v -> MapLast k v #

mconcat :: [MapLast k v] -> MapLast k v #

Ord k => Semigroup (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

(<>) :: MapLast k v -> MapLast k v -> MapLast k v #

sconcat :: NonEmpty (MapLast k v) -> MapLast k v #

stimes :: Integral b => b -> MapLast k v -> MapLast k v #

Generic (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep (MapLast k v) :: Type -> Type #

Methods

from :: MapLast k v -> Rep (MapLast k v) x #

to :: Rep (MapLast k v) x -> MapLast k v #

(Show k, Show v) => Show (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

showsPrec :: Int -> MapLast k v -> ShowS #

show :: MapLast k v -> String #

showList :: [MapLast k v] -> ShowS #

(Binary k, Binary v) => Binary (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

put :: MapLast k v -> Put #

get :: Get (MapLast k v) #

putList :: [MapLast k v] -> Put #

(Eq k, Eq v) => Eq (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

(==) :: MapLast k v -> MapLast k v -> Bool #

(/=) :: MapLast k v -> MapLast k v -> Bool #

type Rep (MapLast k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep (MapLast k v) = D1 ('MetaData "MapLast" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'True) (C1 ('MetaCons "MapLast" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMapLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map k v))))

newtype MapMappend k v Source #

Newtype wrapper for Map that provides a Monoid instance that mappends values of overlapping keys rather than taking the first.

Constructors

MapMappend 

Fields

Instances

Instances details
Functor (MapMappend k) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

fmap :: (a -> b) -> MapMappend k a -> MapMappend k b #

(<$) :: a -> MapMappend k b -> MapMappend k a #

(Structured k, Structured v) => Structured (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

structure :: Proxy (MapMappend k v) -> Structure #

structureHash' :: Tagged (MapMappend k v) MD5

(Semigroup v, Ord k) => Monoid (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

mempty :: MapMappend k v #

mappend :: MapMappend k v -> MapMappend k v -> MapMappend k v #

mconcat :: [MapMappend k v] -> MapMappend k v #

(Semigroup v, Ord k) => Semigroup (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

(<>) :: MapMappend k v -> MapMappend k v -> MapMappend k v #

sconcat :: NonEmpty (MapMappend k v) -> MapMappend k v #

stimes :: Integral b => b -> MapMappend k v -> MapMappend k v #

Generic (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Associated Types

type Rep (MapMappend k v) :: Type -> Type #

Methods

from :: MapMappend k v -> Rep (MapMappend k v) x #

to :: Rep (MapMappend k v) x -> MapMappend k v #

(Show k, Show v) => Show (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

showsPrec :: Int -> MapMappend k v -> ShowS #

show :: MapMappend k v -> String #

showList :: [MapMappend k v] -> ShowS #

(Binary k, Binary v) => Binary (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

put :: MapMappend k v -> Put #

get :: Get (MapMappend k v) #

putList :: [MapMappend k v] -> Put #

(Eq k, Eq v) => Eq (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

Methods

(==) :: MapMappend k v -> MapMappend k v -> Bool #

(/=) :: MapMappend k v -> MapMappend k v -> Bool #

type Rep (MapMappend k v) Source # 
Instance details

Defined in Distribution.Client.ProjectConfig.Types

type Rep (MapMappend k v) = D1 ('MetaData "MapMappend" "Distribution.Client.ProjectConfig.Types" "cabal-install-3.10.1.0-FbhGUvZ0l0XIx7QbOQfSVh" 'True) (C1 ('MetaCons "MapMappend" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMapMappend") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map k v))))