Cabal-3.2.1.0: A framework for packaging Haskell software
Copyright Isaac Jones 2003-2005
License BSD3
Maintainer cabal-devel@haskell.org
Portability portable
Safe Haskell None
Language Haskell2010

Distribution.PackageDescription

Description

Backwards compatibility reexport of everything you need to know about .cabal files.

Synopsis

Package descriptions

data PackageDescription Source #

This data type is the internal representation of the file pkg.cabal . It contains two kinds of information about the package: information which is needed for all packages, such as the package name and version, and information which is needed for the simple build system only, such as the compiler options and library name.

Constructors

PackageDescription

Fields

Instances

Instances details
Eq PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Data PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> PackageDescription -> c PackageDescription Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c PackageDescription Source #

toConstr :: PackageDescription -> Constr Source #

dataTypeOf :: PackageDescription -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c PackageDescription ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c PackageDescription ) Source #

gmapT :: ( forall b. Data b => b -> b) -> PackageDescription -> PackageDescription Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> PackageDescription -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> PackageDescription -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> PackageDescription -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> PackageDescription -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> PackageDescription -> m PackageDescription Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> PackageDescription -> m PackageDescription Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> PackageDescription -> m PackageDescription Source #

Read PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Show PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Generic PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Binary PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

NFData PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Structured PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

Package PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

HasBuildInfos PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

type Rep PackageDescription Source #
Instance details

Defined in Distribution.Types.PackageDescription

type Rep PackageDescription = D1 (' MetaData "PackageDescription" "Distribution.Types.PackageDescription" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "PackageDescription" ' PrefixI ' True ) (((( S1 (' MetaSel (' Just "specVersionRaw") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Either Version VersionRange )) :*: ( S1 (' MetaSel (' Just "package") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 PackageIdentifier ) :*: S1 (' MetaSel (' Just "licenseRaw") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Either License License )))) :*: (( S1 (' MetaSel (' Just "licenseFiles") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: S1 (' MetaSel (' Just "copyright") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText )) :*: ( S1 (' MetaSel (' Just "maintainer") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ) :*: S1 (' MetaSel (' Just "author") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText )))) :*: ((( S1 (' MetaSel (' Just "stability") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ) :*: S1 (' MetaSel (' Just "testedWith") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( CompilerFlavor , VersionRange )])) :*: ( S1 (' MetaSel (' Just "homepage") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ) :*: S1 (' MetaSel (' Just "pkgUrl") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ))) :*: (( S1 (' MetaSel (' Just "bugReports") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ) :*: S1 (' MetaSel (' Just "sourceRepos") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ SourceRepo ])) :*: ( S1 (' MetaSel (' Just "synopsis") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ) :*: S1 (' MetaSel (' Just "description") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ))))) :*: ((( S1 (' MetaSel (' Just "category") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ShortText ) :*: ( S1 (' MetaSel (' Just "customFieldsPD") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( String , String )]) :*: S1 (' MetaSel (' Just "buildTypeRaw") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Maybe BuildType )))) :*: (( S1 (' MetaSel (' Just "setupBuildInfo") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Maybe SetupBuildInfo )) :*: S1 (' MetaSel (' Just "library") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Maybe Library ))) :*: ( S1 (' MetaSel (' Just "subLibraries") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Library ]) :*: S1 (' MetaSel (' Just "executables") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Executable ])))) :*: ((( S1 (' MetaSel (' Just "foreignLibs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ ForeignLib ]) :*: S1 (' MetaSel (' Just "testSuites") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ TestSuite ])) :*: ( S1 (' MetaSel (' Just "benchmarks") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Benchmark ]) :*: S1 (' MetaSel (' Just "dataFiles") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]))) :*: (( S1 (' MetaSel (' Just "dataDir") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 FilePath ) :*: S1 (' MetaSel (' Just "extraSrcFiles") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ])) :*: ( S1 (' MetaSel (' Just "extraTmpFiles") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: S1 (' MetaSel (' Just "extraDocFiles") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ])))))))

specVersion :: PackageDescription -> Version Source #

The version of the Cabal spec that this package should be interpreted against.

Historically we used a version range but we are switching to using a single version. Currently we accept either. This function converts into a single version by ignoring upper bounds in the version range.

buildType :: PackageDescription -> BuildType Source #

The effective build-type after applying defaulting rules.

The original build-type value parsed is stored in the buildTypeRaw field. However, the build-type field is optional and can therefore be empty in which case we need to compute the effective build-type . This function implements the following defaulting rules:

  • For cabal-version:2.0 and below, default to the Custom build-type unconditionally.
  • Otherwise, if a custom-setup stanza is defined, default to the Custom build-type; else default to Simple build-type.

Since: 2.2

license :: PackageDescription -> License Source #

The SPDX LicenseExpression of the package.

Since: 2.2.0.0

data BuildType Source #

The type of build system used by this package.

Constructors

Simple

calls Distribution.Simple.defaultMain

Configure

calls Distribution.Simple.defaultMainWithHooks defaultUserHooks , which invokes configure to generate additional build information used by later phases.

Make

calls Distribution.Make.defaultMain

Custom

uses user-supplied Setup.hs or Setup.lhs (default)

Instances

Instances details
Eq BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Data BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> BuildType -> c BuildType Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c BuildType Source #

toConstr :: BuildType -> Constr Source #

dataTypeOf :: BuildType -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c BuildType ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c BuildType ) Source #

gmapT :: ( forall b. Data b => b -> b) -> BuildType -> BuildType Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> BuildType -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> BuildType -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> BuildType -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> BuildType -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> BuildType -> m BuildType Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> BuildType -> m BuildType Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> BuildType -> m BuildType Source #

Read BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Show BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Generic BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Binary BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

NFData BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Structured BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Pretty BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

Parsec BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

type Rep BuildType Source #
Instance details

Defined in Distribution.Types.BuildType

type Rep BuildType = D1 (' MetaData "BuildType" "Distribution.Types.BuildType" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) (( C1 (' MetaCons "Simple" ' PrefixI ' False ) ( U1 :: Type -> Type ) :+: C1 (' MetaCons "Configure" ' PrefixI ' False ) ( U1 :: Type -> Type )) :+: ( C1 (' MetaCons "Make" ' PrefixI ' False ) ( U1 :: Type -> Type ) :+: C1 (' MetaCons "Custom" ' PrefixI ' False ) ( U1 :: Type -> Type )))

Renaming (syntactic)

data ModuleRenaming Source #

Renaming applied to the modules provided by a package. The boolean indicates whether or not to also include all of the original names of modules. Thus, ModuleRenaming False [] is "don't expose any modules, and ModuleRenaming True [( Data.Bool , Bool )] is, "expose all modules, but also expose Data.Bool as Bool ". If a renaming is omitted you get the DefaultRenaming .

(NB: This is a list not a map so that we can preserve order.)

Constructors

ModuleRenaming [( ModuleName , ModuleName )]

A module renaming/thinning; e.g., (A as B, C as C) brings B and C into scope.

DefaultRenaming

The default renaming, bringing all exported modules into scope.

HidingRenaming [ ModuleName ]

Hiding renaming, e.g., hiding (A, B) , bringing all exported modules into scope except the hidden ones.

Instances

Instances details
Eq ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Data ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> ModuleRenaming -> c ModuleRenaming Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ModuleRenaming Source #

toConstr :: ModuleRenaming -> Constr Source #

dataTypeOf :: ModuleRenaming -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ModuleRenaming ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ModuleRenaming ) Source #

gmapT :: ( forall b. Data b => b -> b) -> ModuleRenaming -> ModuleRenaming Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> ModuleRenaming -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> ModuleRenaming -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> ModuleRenaming -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> ModuleRenaming -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> ModuleRenaming -> m ModuleRenaming Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> ModuleRenaming -> m ModuleRenaming Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> ModuleRenaming -> m ModuleRenaming Source #

Ord ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Read ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Show ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Generic ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Binary ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

NFData ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Structured ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Pretty ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

Parsec ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

type Rep ModuleRenaming Source #
Instance details

Defined in Distribution.Types.ModuleRenaming

defaultRenaming :: ModuleRenaming Source #

The default renaming, if something is specified in build-depends only.

Libraries

data Library Source #

Constructors

Library

Fields

Instances

Instances details
Eq Library Source #
Instance details

Defined in Distribution.Types.Library

Data Library Source #
Instance details

Defined in Distribution.Types.Library

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Library -> c Library Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Library Source #

toConstr :: Library -> Constr Source #

dataTypeOf :: Library -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Library ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Library ) Source #

gmapT :: ( forall b. Data b => b -> b) -> Library -> Library Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Library -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Library -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Library -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Library -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Library -> m Library Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Library -> m Library Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Library -> m Library Source #

Read Library Source #
Instance details

Defined in Distribution.Types.Library

Show Library Source #
Instance details

Defined in Distribution.Types.Library

Generic Library Source #
Instance details

Defined in Distribution.Types.Library

Semigroup Library Source #
Instance details

Defined in Distribution.Types.Library

Monoid Library Source #

This instance is not good.

We need it for addBuildableCondition . More correct method would be some kind of "create empty clone".

More concretely, addBuildableCondition will make `libVisibility = False` libraries when `buildable: false`. This may cause problems.

Instance details

Defined in Distribution.Types.Library

Binary Library Source #
Instance details

Defined in Distribution.Types.Library

NFData Library Source #
Instance details

Defined in Distribution.Types.Library

Structured Library Source #
Instance details

Defined in Distribution.Types.Library

HasBuildInfo Library Source #
Instance details

Defined in Distribution.Types.Library

Methods

buildInfo :: Lens' Library BuildInfo Source #

buildable :: Lens' Library Bool Source #

buildTools :: Lens' Library [ LegacyExeDependency ] Source #

buildToolDepends :: Lens' Library [ ExeDependency ] Source #

cppOptions :: Lens' Library [ String ] Source #

asmOptions :: Lens' Library [ String ] Source #

cmmOptions :: Lens' Library [ String ] Source #

ccOptions :: Lens' Library [ String ] Source #

cxxOptions :: Lens' Library [ String ] Source #

ldOptions :: Lens' Library [ String ] Source #

pkgconfigDepends :: Lens' Library [ PkgconfigDependency ] Source #

frameworks :: Lens' Library [ String ] Source #

extraFrameworkDirs :: Lens' Library [ String ] Source #

asmSources :: Lens' Library [ FilePath ] Source #

cmmSources :: Lens' Library [ FilePath ] Source #

cSources :: Lens' Library [ FilePath ] Source #

cxxSources :: Lens' Library [ FilePath ] Source #

jsSources :: Lens' Library [ FilePath ] Source #

hsSourceDirs :: Lens' Library [ FilePath ] Source #

otherModules :: Lens' Library [ ModuleName ] Source #

virtualModules :: Lens' Library [ ModuleName ] Source #

autogenModules :: Lens' Library [ ModuleName ] Source #

defaultLanguage :: Lens' Library ( Maybe Language ) Source #

otherLanguages :: Lens' Library [ Language ] Source #

defaultExtensions :: Lens' Library [ Extension ] Source #

otherExtensions :: Lens' Library [ Extension ] Source #

oldExtensions :: Lens' Library [ Extension ] Source #

extraLibs :: Lens' Library [ String ] Source #

extraGHCiLibs :: Lens' Library [ String ] Source #

extraBundledLibs :: Lens' Library [ String ] Source #

extraLibFlavours :: Lens' Library [ String ] Source #

extraDynLibFlavours :: Lens' Library [ String ] Source #

extraLibDirs :: Lens' Library [ String ] Source #

includeDirs :: Lens' Library [ FilePath ] Source #

includes :: Lens' Library [ FilePath ] Source #

autogenIncludes :: Lens' Library [ FilePath ] Source #

installIncludes :: Lens' Library [ FilePath ] Source #

options :: Lens' Library ( PerCompilerFlavor [ String ]) Source #

profOptions :: Lens' Library ( PerCompilerFlavor [ String ]) Source #

sharedOptions :: Lens' Library ( PerCompilerFlavor [ String ]) Source #

staticOptions :: Lens' Library ( PerCompilerFlavor [ String ]) Source #

customFieldsBI :: Lens' Library [( String , String )] Source #

targetBuildDepends :: Lens' Library [ Dependency ] Source #

mixins :: Lens' Library [ Mixin ] Source #

type Rep Library Source #
Instance details

Defined in Distribution.Types.Library

data ModuleReexport Source #

Instances

Instances details
Eq ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Data ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> ModuleReexport -> c ModuleReexport Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ModuleReexport Source #

toConstr :: ModuleReexport -> Constr Source #

dataTypeOf :: ModuleReexport -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ModuleReexport ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ModuleReexport ) Source #

gmapT :: ( forall b. Data b => b -> b) -> ModuleReexport -> ModuleReexport Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> ModuleReexport -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> ModuleReexport -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> ModuleReexport -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> ModuleReexport -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> ModuleReexport -> m ModuleReexport Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> ModuleReexport -> m ModuleReexport Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> ModuleReexport -> m ModuleReexport Source #

Read ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Show ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Generic ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Binary ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

NFData ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Structured ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Pretty ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

Parsec ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

type Rep ModuleReexport Source #
Instance details

Defined in Distribution.Types.ModuleReexport

type Rep ModuleReexport = D1 (' MetaData "ModuleReexport" "Distribution.Types.ModuleReexport" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "ModuleReexport" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "moduleReexportOriginalPackage") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Maybe PackageName )) :*: ( S1 (' MetaSel (' Just "moduleReexportOriginalName") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ModuleName ) :*: S1 (' MetaSel (' Just "moduleReexportName") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ModuleName ))))

withLib :: PackageDescription -> ( Library -> IO ()) -> IO () Source #

If the package description has a buildable library section, call the given function with the library build info as argument. You probably want withLibLBI if you have a LocalBuildInfo , see the note in Distribution.Types.ComponentRequestedSpec for more information.

hasPublicLib :: PackageDescription -> Bool Source #

Does this package have a buildable PUBLIC library?

hasLibs :: PackageDescription -> Bool Source #

Does this package have any libraries?

explicitLibModules :: Library -> [ ModuleName ] Source #

Get all the module names from the library (exposed and internal modules) which are explicitly listed in the package description which would need to be compiled. (This does not include reexports, which do not need to be compiled.) This may not include all modules for which GHC generated interface files (i.e., implicit modules.)

libModulesAutogen :: Library -> [ ModuleName ] Source #

Get all the auto generated module names from the library, exposed or not. This are a subset of libModules .

Executables

data Executable Source #

Instances

Instances details
Eq Executable Source #
Instance details

Defined in Distribution.Types.Executable

Data Executable Source #
Instance details

Defined in Distribution.Types.Executable

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Executable -> c Executable Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Executable Source #

toConstr :: Executable -> Constr Source #

dataTypeOf :: Executable -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Executable ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Executable ) Source #

gmapT :: ( forall b. Data b => b -> b) -> Executable -> Executable Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Executable -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Executable -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Executable -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Executable -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Executable -> m Executable Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Executable -> m Executable Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Executable -> m Executable Source #

Read Executable Source #
Instance details

Defined in Distribution.Types.Executable

Show Executable Source #
Instance details

Defined in Distribution.Types.Executable

Generic Executable Source #
Instance details

Defined in Distribution.Types.Executable

Semigroup Executable Source #
Instance details

Defined in Distribution.Types.Executable

Monoid Executable Source #
Instance details

Defined in Distribution.Types.Executable

Binary Executable Source #
Instance details

Defined in Distribution.Types.Executable

NFData Executable Source #
Instance details

Defined in Distribution.Types.Executable

Structured Executable Source #
Instance details

Defined in Distribution.Types.Executable

HasBuildInfo Executable Source #
Instance details

Defined in Distribution.Types.Executable

Methods

buildInfo :: Lens' Executable BuildInfo Source #

buildable :: Lens' Executable Bool Source #

buildTools :: Lens' Executable [ LegacyExeDependency ] Source #

buildToolDepends :: Lens' Executable [ ExeDependency ] Source #

cppOptions :: Lens' Executable [ String ] Source #

asmOptions :: Lens' Executable [ String ] Source #

cmmOptions :: Lens' Executable [ String ] Source #

ccOptions :: Lens' Executable [ String ] Source #

cxxOptions :: Lens' Executable [ String ] Source #

ldOptions :: Lens' Executable [ String ] Source #

pkgconfigDepends :: Lens' Executable [ PkgconfigDependency ] Source #

frameworks :: Lens' Executable [ String ] Source #

extraFrameworkDirs :: Lens' Executable [ String ] Source #

asmSources :: Lens' Executable [ FilePath ] Source #

cmmSources :: Lens' Executable [ FilePath ] Source #

cSources :: Lens' Executable [ FilePath ] Source #

cxxSources :: Lens' Executable [ FilePath ] Source #

jsSources :: Lens' Executable [ FilePath ] Source #

hsSourceDirs :: Lens' Executable [ FilePath ] Source #

otherModules :: Lens' Executable [ ModuleName ] Source #

virtualModules :: Lens' Executable [ ModuleName ] Source #

autogenModules :: Lens' Executable [ ModuleName ] Source #

defaultLanguage :: Lens' Executable ( Maybe Language ) Source #

otherLanguages :: Lens' Executable [ Language ] Source #

defaultExtensions :: Lens' Executable [ Extension ] Source #

otherExtensions :: Lens' Executable [ Extension ] Source #

oldExtensions :: Lens' Executable [ Extension ] Source #

extraLibs :: Lens' Executable [ String ] Source #

extraGHCiLibs :: Lens' Executable [ String ] Source #

extraBundledLibs :: Lens' Executable [ String ] Source #

extraLibFlavours :: Lens' Executable [ String ] Source #

extraDynLibFlavours :: Lens' Executable [ String ] Source #

extraLibDirs :: Lens' Executable [ String ] Source #

includeDirs :: Lens' Executable [ FilePath ] Source #

includes :: Lens' Executable [ FilePath ] Source #

autogenIncludes :: Lens' Executable [ FilePath ] Source #

installIncludes :: Lens' Executable [ FilePath ] Source #

options :: Lens' Executable ( PerCompilerFlavor [ String ]) Source #

profOptions :: Lens' Executable ( PerCompilerFlavor [ String ]) Source #

sharedOptions :: Lens' Executable ( PerCompilerFlavor [ String ]) Source #

staticOptions :: Lens' Executable ( PerCompilerFlavor [ String ]) Source #

customFieldsBI :: Lens' Executable [( String , String )] Source #

targetBuildDepends :: Lens' Executable [ Dependency ] Source #

mixins :: Lens' Executable [ Mixin ] Source #

type Rep Executable Source #
Instance details

Defined in Distribution.Types.Executable

withExe :: PackageDescription -> ( Executable -> IO ()) -> IO () Source #

Perform the action on each buildable Executable in the package description. You probably want withExeLBI if you have a LocalBuildInfo , see the note in Distribution.Types.ComponentRequestedSpec for more information.

hasExes :: PackageDescription -> Bool Source #

does this package have any executables?

exeModules :: Executable -> [ ModuleName ] Source #

Get all the module names from an exe

exeModulesAutogen :: Executable -> [ ModuleName ] Source #

Get all the auto generated module names from an exe This are a subset of exeModules .

Tests

data TestSuite Source #

A "test-suite" stanza in a cabal file.

Instances

Instances details
Eq TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Data TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> TestSuite -> c TestSuite Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c TestSuite Source #

toConstr :: TestSuite -> Constr Source #

dataTypeOf :: TestSuite -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c TestSuite ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c TestSuite ) Source #

gmapT :: ( forall b. Data b => b -> b) -> TestSuite -> TestSuite Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> TestSuite -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> TestSuite -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> TestSuite -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> TestSuite -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> TestSuite -> m TestSuite Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> TestSuite -> m TestSuite Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> TestSuite -> m TestSuite Source #

Read TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Show TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Generic TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Semigroup TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Monoid TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Binary TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

NFData TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Structured TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

HasBuildInfo TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

Methods

buildInfo :: Lens' TestSuite BuildInfo Source #

buildable :: Lens' TestSuite Bool Source #

buildTools :: Lens' TestSuite [ LegacyExeDependency ] Source #

buildToolDepends :: Lens' TestSuite [ ExeDependency ] Source #

cppOptions :: Lens' TestSuite [ String ] Source #

asmOptions :: Lens' TestSuite [ String ] Source #

cmmOptions :: Lens' TestSuite [ String ] Source #

ccOptions :: Lens' TestSuite [ String ] Source #

cxxOptions :: Lens' TestSuite [ String ] Source #

ldOptions :: Lens' TestSuite [ String ] Source #

pkgconfigDepends :: Lens' TestSuite [ PkgconfigDependency ] Source #

frameworks :: Lens' TestSuite [ String ] Source #

extraFrameworkDirs :: Lens' TestSuite [ String ] Source #

asmSources :: Lens' TestSuite [ FilePath ] Source #

cmmSources :: Lens' TestSuite [ FilePath ] Source #

cSources :: Lens' TestSuite [ FilePath ] Source #

cxxSources :: Lens' TestSuite [ FilePath ] Source #

jsSources :: Lens' TestSuite [ FilePath ] Source #

hsSourceDirs :: Lens' TestSuite [ FilePath ] Source #

otherModules :: Lens' TestSuite [ ModuleName ] Source #

virtualModules :: Lens' TestSuite [ ModuleName ] Source #

autogenModules :: Lens' TestSuite [ ModuleName ] Source #

defaultLanguage :: Lens' TestSuite ( Maybe Language ) Source #

otherLanguages :: Lens' TestSuite [ Language ] Source #

defaultExtensions :: Lens' TestSuite [ Extension ] Source #

otherExtensions :: Lens' TestSuite [ Extension ] Source #

oldExtensions :: Lens' TestSuite [ Extension ] Source #

extraLibs :: Lens' TestSuite [ String ] Source #

extraGHCiLibs :: Lens' TestSuite [ String ] Source #

extraBundledLibs :: Lens' TestSuite [ String ] Source #

extraLibFlavours :: Lens' TestSuite [ String ] Source #

extraDynLibFlavours :: Lens' TestSuite [ String ] Source #

extraLibDirs :: Lens' TestSuite [ String ] Source #

includeDirs :: Lens' TestSuite [ FilePath ] Source #

includes :: Lens' TestSuite [ FilePath ] Source #

autogenIncludes :: Lens' TestSuite [ FilePath ] Source #

installIncludes :: Lens' TestSuite [ FilePath ] Source #

options :: Lens' TestSuite ( PerCompilerFlavor [ String ]) Source #

profOptions :: Lens' TestSuite ( PerCompilerFlavor [ String ]) Source #

sharedOptions :: Lens' TestSuite ( PerCompilerFlavor [ String ]) Source #

staticOptions :: Lens' TestSuite ( PerCompilerFlavor [ String ]) Source #

customFieldsBI :: Lens' TestSuite [( String , String )] Source #

targetBuildDepends :: Lens' TestSuite [ Dependency ] Source #

mixins :: Lens' TestSuite [ Mixin ] Source #

type Rep TestSuite Source #
Instance details

Defined in Distribution.Types.TestSuite

data TestSuiteInterface Source #

The test suite interfaces that are currently defined. Each test suite must specify which interface it supports.

More interfaces may be defined in future, either new revisions or totally new interfaces.

Constructors

TestSuiteExeV10 Version FilePath

Test interface "exitcode-stdio-1.0". The test-suite takes the form of an executable. It returns a zero exit code for success, non-zero for failure. The stdout and stderr channels may be logged. It takes no command line parameters and nothing on stdin.

TestSuiteLibV09 Version ModuleName

Test interface "detailed-0.9". The test-suite takes the form of a library containing a designated module that exports "tests :: [Test]".

TestSuiteUnsupported TestType

A test suite that does not conform to one of the above interfaces for the given reason (e.g. unknown test type).

Instances

Instances details
Eq TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Data TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> TestSuiteInterface -> c TestSuiteInterface Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c TestSuiteInterface Source #

toConstr :: TestSuiteInterface -> Constr Source #

dataTypeOf :: TestSuiteInterface -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c TestSuiteInterface ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c TestSuiteInterface ) Source #

gmapT :: ( forall b. Data b => b -> b) -> TestSuiteInterface -> TestSuiteInterface Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> TestSuiteInterface -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> TestSuiteInterface -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> TestSuiteInterface -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> TestSuiteInterface -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> TestSuiteInterface -> m TestSuiteInterface Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> TestSuiteInterface -> m TestSuiteInterface Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> TestSuiteInterface -> m TestSuiteInterface Source #

Read TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Show TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Generic TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Semigroup TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Monoid TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Binary TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

NFData TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

Structured TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

type Rep TestSuiteInterface Source #
Instance details

Defined in Distribution.Types.TestSuiteInterface

data TestType Source #

The "test-type" field in the test suite stanza.

Constructors

TestTypeExe Version

"type: exitcode-stdio-x.y"

TestTypeLib Version

"type: detailed-x.y"

TestTypeUnknown String Version

Some unknown test type e.g. "type: foo"

Instances

Instances details
Eq TestType Source #
Instance details

Defined in Distribution.Types.TestType

Data TestType Source #
Instance details

Defined in Distribution.Types.TestType

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> TestType -> c TestType Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c TestType Source #

toConstr :: TestType -> Constr Source #

dataTypeOf :: TestType -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c TestType ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c TestType ) Source #

gmapT :: ( forall b. Data b => b -> b) -> TestType -> TestType Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> TestType -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> TestType -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> TestType -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> TestType -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> TestType -> m TestType Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> TestType -> m TestType Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> TestType -> m TestType Source #

Read TestType Source #
Instance details

Defined in Distribution.Types.TestType

Show TestType Source #
Instance details

Defined in Distribution.Types.TestType

Generic TestType Source #
Instance details

Defined in Distribution.Types.TestType

Binary TestType Source #
Instance details

Defined in Distribution.Types.TestType

NFData TestType Source #
Instance details

Defined in Distribution.Types.TestType

Structured TestType Source #
Instance details

Defined in Distribution.Types.TestType

Pretty TestType Source #
Instance details

Defined in Distribution.Types.TestType

Parsec TestType Source #
Instance details

Defined in Distribution.Types.TestType

type Rep TestType Source #
Instance details

Defined in Distribution.Types.TestType

hasTests :: PackageDescription -> Bool Source #

Does this package have any test suites?

withTest :: PackageDescription -> ( TestSuite -> IO ()) -> IO () Source #

Perform an action on each buildable TestSuite in a package. You probably want withTestLBI if you have a LocalBuildInfo , see the note in Distribution.Types.ComponentRequestedSpec for more information.

testModules :: TestSuite -> [ ModuleName ] Source #

Get all the module names from a test suite.

testModulesAutogen :: TestSuite -> [ ModuleName ] Source #

Get all the auto generated module names from a test suite. This are a subset of testModules .

Benchmarks

data Benchmark Source #

A "benchmark" stanza in a cabal file.

Instances

Instances details
Eq Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Data Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Benchmark -> c Benchmark Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Benchmark Source #

toConstr :: Benchmark -> Constr Source #

dataTypeOf :: Benchmark -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Benchmark ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Benchmark ) Source #

gmapT :: ( forall b. Data b => b -> b) -> Benchmark -> Benchmark Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Benchmark -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Benchmark -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Benchmark -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Benchmark -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Benchmark -> m Benchmark Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Benchmark -> m Benchmark Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Benchmark -> m Benchmark Source #

Read Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Show Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Generic Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Semigroup Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Monoid Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Binary Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

NFData Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Structured Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

HasBuildInfo Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

Methods

buildInfo :: Lens' Benchmark BuildInfo Source #

buildable :: Lens' Benchmark Bool Source #

buildTools :: Lens' Benchmark [ LegacyExeDependency ] Source #

buildToolDepends :: Lens' Benchmark [ ExeDependency ] Source #

cppOptions :: Lens' Benchmark [ String ] Source #

asmOptions :: Lens' Benchmark [ String ] Source #

cmmOptions :: Lens' Benchmark [ String ] Source #

ccOptions :: Lens' Benchmark [ String ] Source #

cxxOptions :: Lens' Benchmark [ String ] Source #

ldOptions :: Lens' Benchmark [ String ] Source #

pkgconfigDepends :: Lens' Benchmark [ PkgconfigDependency ] Source #

frameworks :: Lens' Benchmark [ String ] Source #

extraFrameworkDirs :: Lens' Benchmark [ String ] Source #

asmSources :: Lens' Benchmark [ FilePath ] Source #

cmmSources :: Lens' Benchmark [ FilePath ] Source #

cSources :: Lens' Benchmark [ FilePath ] Source #

cxxSources :: Lens' Benchmark [ FilePath ] Source #

jsSources :: Lens' Benchmark [ FilePath ] Source #

hsSourceDirs :: Lens' Benchmark [ FilePath ] Source #

otherModules :: Lens' Benchmark [ ModuleName ] Source #

virtualModules :: Lens' Benchmark [ ModuleName ] Source #

autogenModules :: Lens' Benchmark [ ModuleName ] Source #

defaultLanguage :: Lens' Benchmark ( Maybe Language ) Source #

otherLanguages :: Lens' Benchmark [ Language ] Source #

defaultExtensions :: Lens' Benchmark [ Extension ] Source #

otherExtensions :: Lens' Benchmark [ Extension ] Source #

oldExtensions :: Lens' Benchmark [ Extension ] Source #

extraLibs :: Lens' Benchmark [ String ] Source #

extraGHCiLibs :: Lens' Benchmark [ String ] Source #

extraBundledLibs :: Lens' Benchmark [ String ] Source #

extraLibFlavours :: Lens' Benchmark [ String ] Source #

extraDynLibFlavours :: Lens' Benchmark [ String ] Source #

extraLibDirs :: Lens' Benchmark [ String ] Source #

includeDirs :: Lens' Benchmark [ FilePath ] Source #

includes :: Lens' Benchmark [ FilePath ] Source #

autogenIncludes :: Lens' Benchmark [ FilePath ] Source #

installIncludes :: Lens' Benchmark [ FilePath ] Source #

options :: Lens' Benchmark ( PerCompilerFlavor [ String ]) Source #

profOptions :: Lens' Benchmark ( PerCompilerFlavor [ String ]) Source #

sharedOptions :: Lens' Benchmark ( PerCompilerFlavor [ String ]) Source #

staticOptions :: Lens' Benchmark ( PerCompilerFlavor [ String ]) Source #

customFieldsBI :: Lens' Benchmark [( String , String )] Source #

targetBuildDepends :: Lens' Benchmark [ Dependency ] Source #

mixins :: Lens' Benchmark [ Mixin ] Source #

type Rep Benchmark Source #
Instance details

Defined in Distribution.Types.Benchmark

data BenchmarkInterface Source #

The benchmark interfaces that are currently defined. Each benchmark must specify which interface it supports.

More interfaces may be defined in future, either new revisions or totally new interfaces.

Constructors

BenchmarkExeV10 Version FilePath

Benchmark interface "exitcode-stdio-1.0". The benchmark takes the form of an executable. It returns a zero exit code for success, non-zero for failure. The stdout and stderr channels may be logged. It takes no command line parameters and nothing on stdin.

BenchmarkUnsupported BenchmarkType

A benchmark that does not conform to one of the above interfaces for the given reason (e.g. unknown benchmark type).

Instances

Instances details
Eq BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Data BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> BenchmarkInterface -> c BenchmarkInterface Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c BenchmarkInterface Source #

toConstr :: BenchmarkInterface -> Constr Source #

dataTypeOf :: BenchmarkInterface -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c BenchmarkInterface ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c BenchmarkInterface ) Source #

gmapT :: ( forall b. Data b => b -> b) -> BenchmarkInterface -> BenchmarkInterface Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> BenchmarkInterface -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> BenchmarkInterface -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> BenchmarkInterface -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> BenchmarkInterface -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> BenchmarkInterface -> m BenchmarkInterface Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> BenchmarkInterface -> m BenchmarkInterface Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> BenchmarkInterface -> m BenchmarkInterface Source #

Read BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Show BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Generic BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Semigroup BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Monoid BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Binary BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

NFData BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

Structured BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

type Rep BenchmarkInterface Source #
Instance details

Defined in Distribution.Types.BenchmarkInterface

data BenchmarkType Source #

The "benchmark-type" field in the benchmark stanza.

Constructors

BenchmarkTypeExe Version

"type: exitcode-stdio-x.y"

BenchmarkTypeUnknown String Version

Some unknown benchmark type e.g. "type: foo"

Instances

Instances details
Eq BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Data BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> BenchmarkType -> c BenchmarkType Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c BenchmarkType Source #

toConstr :: BenchmarkType -> Constr Source #

dataTypeOf :: BenchmarkType -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c BenchmarkType ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c BenchmarkType ) Source #

gmapT :: ( forall b. Data b => b -> b) -> BenchmarkType -> BenchmarkType Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> BenchmarkType -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> BenchmarkType -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> BenchmarkType -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> BenchmarkType -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> BenchmarkType -> m BenchmarkType Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> BenchmarkType -> m BenchmarkType Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> BenchmarkType -> m BenchmarkType Source #

Read BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Show BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Generic BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Binary BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

NFData BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Structured BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Pretty BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

Parsec BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

type Rep BenchmarkType Source #
Instance details

Defined in Distribution.Types.BenchmarkType

hasBenchmarks :: PackageDescription -> Bool Source #

Does this package have any benchmarks?

withBenchmark :: PackageDescription -> ( Benchmark -> IO ()) -> IO () Source #

Perform an action on each buildable Benchmark in a package. You probably want withBenchLBI if you have a LocalBuildInfo , see the note in Distribution.Types.ComponentRequestedSpec for more information.

benchmarkModules :: Benchmark -> [ ModuleName ] Source #

Get all the module names from a benchmark.

benchmarkModulesAutogen :: Benchmark -> [ ModuleName ] Source #

Get all the auto generated module names from a benchmark. This are a subset of benchmarkModules .

Build information

data BuildInfo Source #

Constructors

BuildInfo

Fields

Instances

Instances details
Eq BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Data BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> BuildInfo -> c BuildInfo Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c BuildInfo Source #

toConstr :: BuildInfo -> Constr Source #

dataTypeOf :: BuildInfo -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c BuildInfo ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c BuildInfo ) Source #

gmapT :: ( forall b. Data b => b -> b) -> BuildInfo -> BuildInfo Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> BuildInfo -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> BuildInfo -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> BuildInfo -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> BuildInfo -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> BuildInfo -> m BuildInfo Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> BuildInfo -> m BuildInfo Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> BuildInfo -> m BuildInfo Source #

Read BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Show BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Generic BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Semigroup BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Monoid BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Binary BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

NFData BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

Structured BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

HasBuildInfo BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo.Lens

Methods

buildInfo :: Lens' BuildInfo BuildInfo Source #

buildable :: Lens' BuildInfo Bool Source #

buildTools :: Lens' BuildInfo [ LegacyExeDependency ] Source #

buildToolDepends :: Lens' BuildInfo [ ExeDependency ] Source #

cppOptions :: Lens' BuildInfo [ String ] Source #

asmOptions :: Lens' BuildInfo [ String ] Source #

cmmOptions :: Lens' BuildInfo [ String ] Source #

ccOptions :: Lens' BuildInfo [ String ] Source #

cxxOptions :: Lens' BuildInfo [ String ] Source #

ldOptions :: Lens' BuildInfo [ String ] Source #

pkgconfigDepends :: Lens' BuildInfo [ PkgconfigDependency ] Source #

frameworks :: Lens' BuildInfo [ String ] Source #

extraFrameworkDirs :: Lens' BuildInfo [ String ] Source #

asmSources :: Lens' BuildInfo [ FilePath ] Source #

cmmSources :: Lens' BuildInfo [ FilePath ] Source #

cSources :: Lens' BuildInfo [ FilePath ] Source #

cxxSources :: Lens' BuildInfo [ FilePath ] Source #

jsSources :: Lens' BuildInfo [ FilePath ] Source #

hsSourceDirs :: Lens' BuildInfo [ FilePath ] Source #

otherModules :: Lens' BuildInfo [ ModuleName ] Source #

virtualModules :: Lens' BuildInfo [ ModuleName ] Source #

autogenModules :: Lens' BuildInfo [ ModuleName ] Source #

defaultLanguage :: Lens' BuildInfo ( Maybe Language ) Source #

otherLanguages :: Lens' BuildInfo [ Language ] Source #

defaultExtensions :: Lens' BuildInfo [ Extension ] Source #

otherExtensions :: Lens' BuildInfo [ Extension ] Source #

oldExtensions :: Lens' BuildInfo [ Extension ] Source #

extraLibs :: Lens' BuildInfo [ String ] Source #

extraGHCiLibs :: Lens' BuildInfo [ String ] Source #

extraBundledLibs :: Lens' BuildInfo [ String ] Source #

extraLibFlavours :: Lens' BuildInfo [ String ] Source #

extraDynLibFlavours :: Lens' BuildInfo [ String ] Source #

extraLibDirs :: Lens' BuildInfo [ String ] Source #

includeDirs :: Lens' BuildInfo [ FilePath ] Source #

includes :: Lens' BuildInfo [ FilePath ] Source #

autogenIncludes :: Lens' BuildInfo [ FilePath ] Source #

installIncludes :: Lens' BuildInfo [ FilePath ] Source #

options :: Lens' BuildInfo ( PerCompilerFlavor [ String ]) Source #

profOptions :: Lens' BuildInfo ( PerCompilerFlavor [ String ]) Source #

sharedOptions :: Lens' BuildInfo ( PerCompilerFlavor [ String ]) Source #

staticOptions :: Lens' BuildInfo ( PerCompilerFlavor [ String ]) Source #

customFieldsBI :: Lens' BuildInfo [( String , String )] Source #

targetBuildDepends :: Lens' BuildInfo [ Dependency ] Source #

mixins :: Lens' BuildInfo [ Mixin ] Source #

type Rep BuildInfo Source #
Instance details

Defined in Distribution.Types.BuildInfo

type Rep BuildInfo = D1 (' MetaData "BuildInfo" "Distribution.Types.BuildInfo" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "BuildInfo" ' PrefixI ' True ) ((((( S1 (' MetaSel (' Just "buildable") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 Bool ) :*: S1 (' MetaSel (' Just "buildTools") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ LegacyExeDependency ])) :*: ( S1 (' MetaSel (' Just "buildToolDepends") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ ExeDependency ]) :*: ( S1 (' MetaSel (' Just "cppOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: S1 (' MetaSel (' Just "asmOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ])))) :*: (( S1 (' MetaSel (' Just "cmmOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: S1 (' MetaSel (' Just "ccOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ])) :*: ( S1 (' MetaSel (' Just "cxxOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: ( S1 (' MetaSel (' Just "ldOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: S1 (' MetaSel (' Just "pkgconfigDepends") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ PkgconfigDependency ]))))) :*: ((( S1 (' MetaSel (' Just "frameworks") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: S1 (' MetaSel (' Just "extraFrameworkDirs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ])) :*: ( S1 (' MetaSel (' Just "asmSources") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: ( S1 (' MetaSel (' Just "cmmSources") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: S1 (' MetaSel (' Just "cSources") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ])))) :*: (( S1 (' MetaSel (' Just "cxxSources") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: ( S1 (' MetaSel (' Just "jsSources") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: S1 (' MetaSel (' Just "hsSourceDirs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]))) :*: ( S1 (' MetaSel (' Just "otherModules") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ ModuleName ]) :*: ( S1 (' MetaSel (' Just "virtualModules") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ ModuleName ]) :*: S1 (' MetaSel (' Just "autogenModules") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ ModuleName ])))))) :*: (((( S1 (' MetaSel (' Just "defaultLanguage") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Maybe Language )) :*: S1 (' MetaSel (' Just "otherLanguages") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Language ])) :*: ( S1 (' MetaSel (' Just "defaultExtensions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Extension ]) :*: ( S1 (' MetaSel (' Just "otherExtensions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Extension ]) :*: S1 (' MetaSel (' Just "oldExtensions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Extension ])))) :*: (( S1 (' MetaSel (' Just "extraLibs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: ( S1 (' MetaSel (' Just "extraGHCiLibs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: S1 (' MetaSel (' Just "extraBundledLibs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]))) :*: ( S1 (' MetaSel (' Just "extraLibFlavours") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: ( S1 (' MetaSel (' Just "extraDynLibFlavours") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]) :*: S1 (' MetaSel (' Just "extraLibDirs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ String ]))))) :*: ((( S1 (' MetaSel (' Just "includeDirs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: S1 (' MetaSel (' Just "includes") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ])) :*: ( S1 (' MetaSel (' Just "autogenIncludes") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: ( S1 (' MetaSel (' Just "installIncludes") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ FilePath ]) :*: S1 (' MetaSel (' Just "options") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( PerCompilerFlavor [ String ]))))) :*: (( S1 (' MetaSel (' Just "profOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( PerCompilerFlavor [ String ])) :*: ( S1 (' MetaSel (' Just "sharedOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( PerCompilerFlavor [ String ])) :*: S1 (' MetaSel (' Just "staticOptions") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( PerCompilerFlavor [ String ])))) :*: ( S1 (' MetaSel (' Just "customFieldsBI") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( String , String )]) :*: ( S1 (' MetaSel (' Just "targetBuildDepends") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Dependency ]) :*: S1 (' MetaSel (' Just "mixins") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Mixin ]))))))))

allBuildInfo :: PackageDescription -> [ BuildInfo ] Source #

All BuildInfo in the PackageDescription : libraries, executables, test-suites and benchmarks.

Useful for implementing package checks.

allExtensions :: BuildInfo -> [ Extension ] Source #

The Extension s that are used somewhere by this component

usedExtensions :: BuildInfo -> [ Extension ] Source #

The Extensions that are used by all modules in this component

usesTemplateHaskellOrQQ :: BuildInfo -> Bool Source #

Whether any modules in this component use Template Haskell or Quasi Quotes

hcOptions :: CompilerFlavor -> BuildInfo -> [ String ] Source #

Select options for a particular Haskell compiler.

Supplementary build information

allBuildDepends :: PackageDescription -> [ Dependency ] Source #

Get the combined build-depends entries of all components.

enabledBuildDepends :: PackageDescription -> ComponentRequestedSpec -> [ Dependency ] Source #

Get the combined build-depends entries of all enabled components, per the given request spec.

data ComponentName Source #

Instances

Instances details
Eq ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Ord ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Read ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Show ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Generic ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Binary ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Structured ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Pretty ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

Parsec ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

type Rep ComponentName Source #
Instance details

Defined in Distribution.Types.ComponentName

data LibraryName Source #

Instances

Instances details
Eq LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Data LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> LibraryName -> c LibraryName Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c LibraryName Source #

toConstr :: LibraryName -> Constr Source #

dataTypeOf :: LibraryName -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c LibraryName ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c LibraryName ) Source #

gmapT :: ( forall b. Data b => b -> b) -> LibraryName -> LibraryName Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> LibraryName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> LibraryName -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> LibraryName -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> LibraryName -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> LibraryName -> m LibraryName Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> LibraryName -> m LibraryName Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> LibraryName -> m LibraryName Source #

Ord LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Read LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Show LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Generic LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Binary LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

NFData LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

Structured LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

type Rep LibraryName Source #
Instance details

Defined in Distribution.Types.LibraryName

type Rep LibraryName = D1 (' MetaData "LibraryName" "Distribution.Types.LibraryName" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "LMainLibName" ' PrefixI ' False ) ( U1 :: Type -> Type ) :+: C1 (' MetaCons "LSubLibName" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 UnqualComponentName )))

type HookedBuildInfo = ( Maybe BuildInfo , [( UnqualComponentName , BuildInfo )]) Source #

HookedBuildInfo is mechanism that hooks can use to override the BuildInfo s inside packages. One example use-case (which is used in core libraries today) is as a way of passing flags which are computed by a configure script into Cabal. In this case, the autoconf build type adds hooks to read in a textual HookedBuildInfo format prior to doing any operations.

Quite honestly, this mechanism is a massive hack since we shouldn't be editing the PackageDescription data structure (it's easy to assume that this data structure shouldn't change and run into bugs, see for example 1c20a6328579af9e37677d507e2e9836ef70ab9d). But it's a bit convenient, because there isn't another data structure that allows adding extra BuildInfo style things.

In any case, a lot of care has to be taken to make sure the HookedBuildInfo is applied to the PackageDescription . In general this process occurs in Distribution.Simple , which is responsible for orchestrating the hooks mechanism. The general strategy:

  1. We run the pre-hook, which produces a HookedBuildInfo (e.g., in the Autoconf case, it reads it out from a file).
  2. We sanity-check the hooked build info with sanityCheckHookedBuildInfo .
  3. We update our PackageDescription (either freshly read or cached from LocalBuildInfo ) with updatePackageDescription .

In principle, we are also supposed to update the copy of the PackageDescription stored in LocalBuildInfo at localPkgDescr . Unfortunately, in practice, there are lots of Custom setup scripts which fail to update localPkgDescr so you really shouldn't rely on it. It's not DEPRECATED because there are legitimate uses for it, but... yeah. Sharp knife. See https://github.com/haskell/cabal/issues/3606 for more information on the issue.

It is not well-specified whether or not a HookedBuildInfo applied at configure time is persistent to the LocalBuildInfo . The fact that HookedBuildInfo is passed to confHook MIGHT SUGGEST that the HookedBuildInfo is applied at this time, but actually since 9317b67e6122ab14e53f81b573bd0ecb388eca5a it has been ONLY used to create a modified package description that we check for problems: it is never actually saved to the LBI. Since HookedBuildInfo is applied monoidally to the existing build infos (and it is not an idempotent monoid), it could break things to save it, since we are obligated to apply any new HookedBuildInfo and then we'd get the effect twice. But this does mean we have to re-apply it every time. Hey, it's more flexibility.

package configuration

data GenericPackageDescription Source #

Instances

Instances details
Eq GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

Data GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> GenericPackageDescription -> c GenericPackageDescription Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c GenericPackageDescription Source #

toConstr :: GenericPackageDescription -> Constr Source #

dataTypeOf :: GenericPackageDescription -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c GenericPackageDescription ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c GenericPackageDescription ) Source #

gmapT :: ( forall b. Data b => b -> b) -> GenericPackageDescription -> GenericPackageDescription Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> GenericPackageDescription -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> GenericPackageDescription -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> GenericPackageDescription -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> GenericPackageDescription -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> GenericPackageDescription -> m GenericPackageDescription Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> GenericPackageDescription -> m GenericPackageDescription Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> GenericPackageDescription -> m GenericPackageDescription Source #

Show GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

Generic GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

Binary GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

NFData GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

Structured GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

Package GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

HasBuildInfos GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

type Rep GenericPackageDescription Source #
Instance details

Defined in Distribution.Types.GenericPackageDescription

type Rep GenericPackageDescription = D1 (' MetaData "GenericPackageDescription" "Distribution.Types.GenericPackageDescription" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "GenericPackageDescription" ' PrefixI ' True ) ((( S1 (' MetaSel (' Just "packageDescription") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 PackageDescription ) :*: S1 (' MetaSel (' Just "genPackageFlags") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Flag ])) :*: ( S1 (' MetaSel (' Just "condLibrary") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Maybe ( CondTree ConfVar [ Dependency ] Library ))) :*: S1 (' MetaSel (' Just "condSubLibraries") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( UnqualComponentName , CondTree ConfVar [ Dependency ] Library )]))) :*: (( S1 (' MetaSel (' Just "condForeignLibs") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( UnqualComponentName , CondTree ConfVar [ Dependency ] ForeignLib )]) :*: S1 (' MetaSel (' Just "condExecutables") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( UnqualComponentName , CondTree ConfVar [ Dependency ] Executable )])) :*: ( S1 (' MetaSel (' Just "condTestSuites") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( UnqualComponentName , CondTree ConfVar [ Dependency ] TestSuite )]) :*: S1 (' MetaSel (' Just "condBenchmarks") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [( UnqualComponentName , CondTree ConfVar [ Dependency ] Benchmark )])))))

data Flag Source #

A flag can represent a feature to be included, or a way of linking a target against its dependencies, or in fact whatever you can think of.

Instances

Instances details
Eq Flag Source #
Instance details

Defined in Distribution.Types.Flag

Data Flag Source #
Instance details

Defined in Distribution.Types.Flag

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Flag -> c Flag Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Flag Source #

toConstr :: Flag -> Constr Source #

dataTypeOf :: Flag -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Flag ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Flag ) Source #

gmapT :: ( forall b. Data b => b -> b) -> Flag -> Flag Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Flag -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Flag -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Flag -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Flag -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Flag -> m Flag Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Flag -> m Flag Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Flag -> m Flag Source #

Show Flag Source #
Instance details

Defined in Distribution.Types.Flag

Generic Flag Source #
Instance details

Defined in Distribution.Types.Flag

Associated Types

type Rep Flag :: Type -> Type Source #

Binary Flag Source #
Instance details

Defined in Distribution.Types.Flag

NFData Flag Source #
Instance details

Defined in Distribution.Types.Flag

Structured Flag Source #
Instance details

Defined in Distribution.Types.Flag

type Rep Flag Source #
Instance details

Defined in Distribution.Types.Flag

emptyFlag :: FlagName -> Flag Source #

A Flag initialized with default parameters.

data FlagName Source #

A FlagName is the name of a user-defined configuration flag

Use mkFlagName and unFlagName to convert from/to a String .

This type is opaque since Cabal-2.0

Since: 2.0.0.2

Instances

Instances details
Eq FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Data FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> FlagName -> c FlagName Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c FlagName Source #

toConstr :: FlagName -> Constr Source #

dataTypeOf :: FlagName -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c FlagName ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c FlagName ) Source #

gmapT :: ( forall b. Data b => b -> b) -> FlagName -> FlagName Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> FlagName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> FlagName -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> FlagName -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> FlagName -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> FlagName -> m FlagName Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> FlagName -> m FlagName Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> FlagName -> m FlagName Source #

Ord FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Read FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Show FlagName Source #
Instance details

Defined in Distribution.Types.Flag

IsString FlagName Source #

mkFlagName

Since: 2.0.0.2

Instance details

Defined in Distribution.Types.Flag

Generic FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Binary FlagName Source #
Instance details

Defined in Distribution.Types.Flag

NFData FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Structured FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Pretty FlagName Source #
Instance details

Defined in Distribution.Types.Flag

Parsec FlagName Source #
Instance details

Defined in Distribution.Types.Flag

type Rep FlagName Source #
Instance details

Defined in Distribution.Types.Flag

type Rep FlagName = D1 (' MetaData "FlagName" "Distribution.Types.Flag" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' True ) ( C1 (' MetaCons "FlagName" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ShortText )))

mkFlagName :: String -> FlagName Source #

Construct a FlagName from a String

mkFlagName is the inverse to unFlagName

Note: No validations are performed to ensure that the resulting FlagName is valid

Since: 2.0.0.2

data FlagAssignment Source #

A FlagAssignment is a total or partial mapping of FlagName s to Bool flag values. It represents the flags chosen by the user or discovered during configuration. For example --flags=foo --flags=-bar becomes [("foo", True), ("bar", False)]

Instances

Instances details
Eq FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

Ord FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

Read FlagAssignment Source #

Since: 2.2.0

Instance details

Defined in Distribution.Types.Flag

Show FlagAssignment Source #

Since: 2.2.0

Instance details

Defined in Distribution.Types.Flag

Generic FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

Semigroup FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

Monoid FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

Binary FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

NFData FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

Structured FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

type Rep FlagAssignment Source #
Instance details

Defined in Distribution.Types.Flag

type Rep FlagAssignment = D1 (' MetaData "FlagAssignment" "Distribution.Types.Flag" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' True ) ( C1 (' MetaCons "FlagAssignment" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getFlagAssignment") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( Map FlagName ( Int , Bool )))))

mkFlagAssignment :: [( FlagName , Bool )] -> FlagAssignment Source #

Construct a FlagAssignment from a list of flag/value pairs.

If duplicate flags occur in the input list, the later entries in the list will take precedence.

Since: 2.2.0

unFlagAssignment :: FlagAssignment -> [( FlagName , Bool )] Source #

Deconstruct a FlagAssignment into a list of flag/value pairs.

 null (findDuplicateFlagAssignments fa) ==> (mkFlagAssignment . unFlagAssignment) fa == fa

Since: 2.2.0

showFlagValue :: ( FlagName , Bool ) -> String Source #

String representation of a flag-value pair.

diffFlagAssignment :: FlagAssignment -> FlagAssignment -> FlagAssignment Source #

Remove all flag-assignments from the first FlagAssignment that are contained in the second FlagAssignment

NB/TODO: This currently only removes flag assignments which also match the value assignment! We should review the code which uses this operation to figure out if this it's not enough to only compare the flagnames without the values.

Since: 2.2.0

lookupFlagAssignment :: FlagName -> FlagAssignment -> Maybe Bool Source #

Lookup the value for a flag

Returns Nothing if the flag isn't contained in the FlagAssignment .

Since: 2.2.0

insertFlagAssignment :: FlagName -> Bool -> FlagAssignment -> FlagAssignment Source #

Insert or update the boolean value of a flag.

If the flag is already present in the FlagAssigment , the value will be updated and the fact that multiple values have been provided for that flag will be recorded so that a warning can be generated later on.

Since: 2.2.0

dispFlagAssignment :: FlagAssignment -> Doc Source #

Pretty-prints a flag assignment.

findDuplicateFlagAssignments :: FlagAssignment -> [ FlagName ] Source #

Find the FlagName s that have been listed more than once.

Since: 2.2.0

data CondTree v c a Source #

A CondTree is used to represent the conditional structure of a Cabal file, reflecting a syntax element subject to constraints, and then any number of sub-elements which may be enabled subject to some condition. Both a and c are usually Monoid s.

To be more concrete, consider the following fragment of a Cabal file:

build-depends: base >= 4.0
if flag(extra)
    build-depends: base >= 4.2

One way to represent this is to have CondTree ConfVar [ Dependency ] BuildInfo . Here, condTreeData represents the actual fields which are not behind any conditional, while condTreeComponents recursively records any further fields which are behind a conditional. condTreeConstraints records the constraints (in this case, base >= 4.0 ) which would be applied if you use this syntax; in general, this is derived off of targetBuildInfo (perhaps a good refactoring would be to convert this into an opaque type, with a smart constructor that pre-computes the dependencies.)

Instances

Instances details
Functor ( CondTree v c) Source #
Instance details

Defined in Distribution.Types.CondTree

Methods

fmap :: (a -> b) -> CondTree v c a -> CondTree v c b Source #

(<$) :: a -> CondTree v c b -> CondTree v c a Source #

Foldable ( CondTree v c) Source #
Instance details

Defined in Distribution.Types.CondTree

Traversable ( CondTree v c) Source #
Instance details

Defined in Distribution.Types.CondTree

( Eq a, Eq c, Eq v) => Eq ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

( Data v, Data c, Data a) => Data ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

Methods

gfoldl :: ( forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> ( forall g. g -> c0 g) -> CondTree v c a -> c0 ( CondTree v c a) Source #

gunfold :: ( forall b r. Data b => c0 (b -> r) -> c0 r) -> ( forall r. r -> c0 r) -> Constr -> c0 ( CondTree v c a) Source #

toConstr :: CondTree v c a -> Constr Source #

dataTypeOf :: CondTree v c a -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c0 (t d)) -> Maybe (c0 ( CondTree v c a)) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c0 (t d e)) -> Maybe (c0 ( CondTree v c a)) Source #

gmapT :: ( forall b. Data b => b -> b) -> CondTree v c a -> CondTree v c a Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> CondTree v c a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> CondTree v c a -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> CondTree v c a -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> CondTree v c a -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> CondTree v c a -> m ( CondTree v c a) Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> CondTree v c a -> m ( CondTree v c a) Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> CondTree v c a -> m ( CondTree v c a) Source #

( Show a, Show c, Show v) => Show ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

Generic ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

Associated Types

type Rep ( CondTree v c a) :: Type -> Type Source #

( Binary v, Binary c, Binary a) => Binary ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

( NFData v, NFData c, NFData a) => NFData ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

Methods

rnf :: CondTree v c a -> () Source #

( Structured v, Structured c, Structured a) => Structured ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

type Rep ( CondTree v c a) Source #
Instance details

Defined in Distribution.Types.CondTree

type Rep ( CondTree v c a) = D1 (' MetaData "CondTree" "Distribution.Types.CondTree" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "CondNode" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "condTreeData") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 a) :*: ( S1 (' MetaSel (' Just "condTreeConstraints") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 c) :*: S1 (' MetaSel (' Just "condTreeComponents") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ CondBranch v c a]))))

data ConfVar Source #

A ConfVar represents the variable type used.

Instances

Instances details
Eq ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

Data ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> ConfVar -> c ConfVar Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ConfVar Source #

toConstr :: ConfVar -> Constr Source #

dataTypeOf :: ConfVar -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ConfVar ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ConfVar ) Source #

gmapT :: ( forall b. Data b => b -> b) -> ConfVar -> ConfVar Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> ConfVar -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> ConfVar -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> ConfVar -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> ConfVar -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> ConfVar -> m ConfVar Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> ConfVar -> m ConfVar Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> ConfVar -> m ConfVar Source #

Show ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

Generic ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

Binary ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

NFData ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

Structured ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

type Rep ConfVar Source #
Instance details

Defined in Distribution.Types.ConfVar

data Condition c Source #

A boolean expression parameterized over the variable type used.

Instances

Instances details
Monad Condition Source #
Instance details

Defined in Distribution.Types.Condition

Functor Condition Source #
Instance details

Defined in Distribution.Types.Condition

Applicative Condition Source #
Instance details

Defined in Distribution.Types.Condition

Foldable Condition Source #
Instance details

Defined in Distribution.Types.Condition

Traversable Condition Source #
Instance details

Defined in Distribution.Types.Condition

Alternative Condition Source #
Instance details

Defined in Distribution.Types.Condition

MonadPlus Condition Source #
Instance details

Defined in Distribution.Types.Condition

Eq c => Eq ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

Data c => Data ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

Methods

gfoldl :: ( forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> ( forall g. g -> c0 g) -> Condition c -> c0 ( Condition c) Source #

gunfold :: ( forall b r. Data b => c0 (b -> r) -> c0 r) -> ( forall r. r -> c0 r) -> Constr -> c0 ( Condition c) Source #

toConstr :: Condition c -> Constr Source #

dataTypeOf :: Condition c -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c0 (t d)) -> Maybe (c0 ( Condition c)) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c0 (t d e)) -> Maybe (c0 ( Condition c)) Source #

gmapT :: ( forall b. Data b => b -> b) -> Condition c -> Condition c Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Condition c -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Condition c -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Condition c -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Condition c -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Condition c -> m ( Condition c) Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Condition c -> m ( Condition c) Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Condition c -> m ( Condition c) Source #

Show c => Show ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

Generic ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

Associated Types

type Rep ( Condition c) :: Type -> Type Source #

Semigroup ( Condition a) Source #
Instance details

Defined in Distribution.Types.Condition

Monoid ( Condition a) Source #
Instance details

Defined in Distribution.Types.Condition

Binary c => Binary ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

NFData c => NFData ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

Structured c => Structured ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

type Rep ( Condition c) Source #
Instance details

Defined in Distribution.Types.Condition

cNot :: Condition a -> Condition a Source #

Boolean negation of a Condition value.

cAnd :: Condition a -> Condition a -> Condition a Source #

Boolean AND of two Condtion values.

Source repositories

data SourceRepo Source #

Information about the source revision control system for a package.

When specifying a repo it is useful to know the meaning or intention of the information as doing so enables automation. There are two obvious common purposes: one is to find the repo for the latest development version, the other is to find the repo for this specific release. The ReopKind specifies which one we mean (or another custom one).

A package can specify one or the other kind or both. Most will specify just a head repo but some may want to specify a repo to reconstruct the sources for this package release.

The required information is the RepoType which tells us if it's using Darcs , Git for example. The repoLocation and other details are interpreted according to the repo type.

Constructors

SourceRepo

Fields

  • repoKind :: RepoKind

    The kind of repo. This field is required.

  • repoType :: Maybe RepoType

    The type of the source repository system for this repo, eg Darcs or Git . This field is required.

  • repoLocation :: Maybe String

    The location of the repository. For most RepoType s this is a URL. This field is required.

  • repoModule :: Maybe String

    CVS can put multiple "modules" on one server and requires a module name in addition to the location to identify a particular repo. Logically this is part of the location but unfortunately has to be specified separately. This field is required for the CVS RepoType and should not be given otherwise.

  • repoBranch :: Maybe String

    The name or identifier of the branch, if any. Many source control systems have the notion of multiple branches in a repo that exist in the same location. For example Git and CVS use this while systems like Darcs use different locations for different branches. This field is optional but should be used if necessary to identify the sources, especially for the RepoThis repo kind.

  • repoTag :: Maybe String

    The tag identify a particular state of the repository. This should be given for the RepoThis repo kind and not for RepoHead kind.

  • repoSubdir :: Maybe FilePath

    Some repositories contain multiple projects in different subdirectories This field specifies the subdirectory where this packages sources can be found, eg the subdirectory containing the .cabal file. It is interpreted relative to the root of the repository. This field is optional. If not given the default is "." ie no subdirectory.

Instances

Instances details
Eq SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Data SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> SourceRepo -> c SourceRepo Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c SourceRepo Source #

toConstr :: SourceRepo -> Constr Source #

dataTypeOf :: SourceRepo -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c SourceRepo ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c SourceRepo ) Source #

gmapT :: ( forall b. Data b => b -> b) -> SourceRepo -> SourceRepo Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> SourceRepo -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> SourceRepo -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> SourceRepo -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> SourceRepo -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> SourceRepo -> m SourceRepo Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> SourceRepo -> m SourceRepo Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> SourceRepo -> m SourceRepo Source #

Ord SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Read SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Show SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Generic SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Binary SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

NFData SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

Structured SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

type Rep SourceRepo Source #
Instance details

Defined in Distribution.Types.SourceRepo

data RepoKind Source #

What this repo info is for, what it represents.

Constructors

RepoHead

The repository for the "head" or development version of the project. This repo is where we should track the latest development activity or the usual repo people should get to contribute patches.

RepoThis

The repository containing the sources for this exact package version or release. For this kind of repo a tag should be given to give enough information to re-create the exact sources.

RepoKindUnknown String

Instances

Instances details
Eq RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Data RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> RepoKind -> c RepoKind Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c RepoKind Source #

toConstr :: RepoKind -> Constr Source #

dataTypeOf :: RepoKind -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c RepoKind ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c RepoKind ) Source #

gmapT :: ( forall b. Data b => b -> b) -> RepoKind -> RepoKind Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> RepoKind -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> RepoKind -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> RepoKind -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> RepoKind -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> RepoKind -> m RepoKind Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> RepoKind -> m RepoKind Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> RepoKind -> m RepoKind Source #

Ord RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Read RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Show RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Generic RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Binary RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

NFData RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Structured RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Pretty RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

Parsec RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

type Rep RepoKind Source #
Instance details

Defined in Distribution.Types.SourceRepo

data RepoType Source #

An enumeration of common source control systems. The fields used in the SourceRepo depend on the type of repo. The tools and methods used to obtain and track the repo depend on the repo type.

Instances

Instances details
Eq RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Data RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> RepoType -> c RepoType Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c RepoType Source #

toConstr :: RepoType -> Constr Source #

dataTypeOf :: RepoType -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c RepoType ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c RepoType ) Source #

gmapT :: ( forall b. Data b => b -> b) -> RepoType -> RepoType Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> RepoType -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> RepoType -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> RepoType -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> RepoType -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> RepoType -> m RepoType Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> RepoType -> m RepoType Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> RepoType -> m RepoType Source #

Ord RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Read RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Show RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Generic RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Binary RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

NFData RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Structured RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Pretty RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Parsec RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

type Rep RepoType Source #
Instance details

Defined in Distribution.Types.SourceRepo

Custom setup build information

data SetupBuildInfo Source #

Constructors

SetupBuildInfo

Fields

  • setupDepends :: [ Dependency ]
  • defaultSetupDepends :: Bool

    Is this a default 'custom-setup' section added by the cabal-install code (as opposed to user-provided)? This field is only used internally, and doesn't correspond to anything in the .cabal file. See #3199.

Instances

Instances details
Eq SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Data SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> SetupBuildInfo -> c SetupBuildInfo Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c SetupBuildInfo Source #

toConstr :: SetupBuildInfo -> Constr Source #

dataTypeOf :: SetupBuildInfo -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c SetupBuildInfo ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c SetupBuildInfo ) Source #

gmapT :: ( forall b. Data b => b -> b) -> SetupBuildInfo -> SetupBuildInfo Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> SetupBuildInfo -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> SetupBuildInfo -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> SetupBuildInfo -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> SetupBuildInfo -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> SetupBuildInfo -> m SetupBuildInfo Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> SetupBuildInfo -> m SetupBuildInfo Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> SetupBuildInfo -> m SetupBuildInfo Source #

Read SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Show SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Generic SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Semigroup SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Monoid SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Binary SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

NFData SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

Structured SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

type Rep SetupBuildInfo Source #
Instance details

Defined in Distribution.Types.SetupBuildInfo

type Rep SetupBuildInfo = D1 (' MetaData "SetupBuildInfo" "Distribution.Types.SetupBuildInfo" "Cabal-3.2.1.0-3w1fQQbNnuQ5xlFGwVXcPy" ' False ) ( C1 (' MetaCons "SetupBuildInfo" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "setupDepends") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 [ Dependency ]) :*: S1 (' MetaSel (' Just "defaultSetupDepends") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 Bool )))