Distribution.PackageDescription

Cabal-1.23.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 | Haskell98

Distribution.PackageDescription

Contents

- Package descriptions
  - Renaming
  - Libraries
  - Executables
- Tests
- Benchmarks
- Build information
  - Supplementary build information
- package configuration
- Source repositories
- Custom setup build information

Description

This defines the data structure for the `.cabal` file format. There are several parts to this structure. It has top level info and then `Library`, `Executable`, `TestSuite`, and `Benchmark` sections each of which have associated `BuildInfo` data that's used to build the library, exe, test, or benchmark. To further complicate things there is both a `PackageDescription` and a `GenericPackageDescription`. This distinction relates to cabal configurations. When we initially read a `.cabal` file we get a `GenericPackageDescription` which has all the conditional sections. Before actually building a package we have to decide on each conditional. Once we've done that we get a `PackageDescription`. It was done this way initially to avoid breaking too much stuff when the feature was introduced. It could probably do with being rationalised at some point to make it simpler.

Synopsis

- data PackageDescription = PackageDescription {
  - package :: PackageIdentifier
  - license :: License
  - licenseFiles :: [FilePath]
  - copyright :: String
  - maintainer :: String
  - author :: String
  - stability :: String
  - testedWith :: [(CompilerFlavor, VersionRange)]
  - homepage :: String
  - pkgUrl :: String
  - bugReports :: String
  - sourceRepos :: [SourceRepo]
  - synopsis :: String
  - description :: String
  - category :: String
  - customFieldsPD :: [(String, String)]
  - buildDepends :: [Dependency]
  - specVersionRaw :: Either Version VersionRange
  - buildType :: Maybe BuildType
  - setupBuildInfo :: Maybe SetupBuildInfo
  - library :: Maybe Library
  - executables :: [Executable]
  - testSuites :: [TestSuite]
  - benchmarks :: [Benchmark]
  - dataFiles :: [FilePath]
  - dataDir :: FilePath
  - extraSrcFiles :: [FilePath]
  - extraTmpFiles :: [FilePath]
  - extraDocFiles :: [FilePath]
  }
- emptyPackageDescription :: PackageDescription
- specVersion :: PackageDescription -> Version
- descCabalVersion :: PackageDescription -> VersionRange
- data BuildType
  - = Simple
  - | Configure
  - | Make
  - | Custom
  - | UnknownBuildType String
- knownBuildTypes :: [BuildType]
- data ModuleRenaming = ModuleRenaming Bool [(ModuleName, ModuleName)]
- defaultRenaming :: ModuleRenaming
- lookupRenaming :: Package pkg => pkg -> Map PackageName ModuleRenaming -> ModuleRenaming
- data Library = Library {
  - exposedModules :: [ModuleName]
  - reexportedModules :: [ModuleReexport]
  - requiredSignatures :: [ModuleName]
  - exposedSignatures :: [ModuleName]
  - libExposed :: Bool
  - libBuildInfo :: BuildInfo
  }
- data ModuleReexport = ModuleReexport {
  - moduleReexportOriginalPackage :: Maybe PackageName
  - moduleReexportOriginalName :: ModuleName
  - moduleReexportName :: ModuleName
  }
- emptyLibrary :: Library
- withLib :: PackageDescription -> (Library -> IO ()) -> IO ()
- hasLibs :: PackageDescription -> Bool
- libModules :: Library -> [ModuleName]
- data Executable = Executable {
  - exeName :: String
  - modulePath :: FilePath
  - buildInfo :: BuildInfo
  }
- emptyExecutable :: Executable
- withExe :: PackageDescription -> (Executable -> IO ()) -> IO ()
- hasExes :: PackageDescription -> Bool
- exeModules :: Executable -> [ModuleName]
- data TestSuite = TestSuite {
  - testName :: String
  - testInterface :: TestSuiteInterface
  - testBuildInfo :: BuildInfo
  - testEnabled :: Bool
  }
- data TestSuiteInterface
  - = TestSuiteExeV10 Version FilePath
  - | TestSuiteLibV09 Version ModuleName
  - | TestSuiteUnsupported TestType
- data TestType
  - = TestTypeExe Version
  - | TestTypeLib Version
  - | TestTypeUnknown String Version
- testType :: TestSuite -> TestType
- knownTestTypes :: [TestType]
- emptyTestSuite :: TestSuite
- hasTests :: PackageDescription -> Bool
- withTest :: PackageDescription -> (TestSuite -> IO ()) -> IO ()
- testModules :: TestSuite -> [ModuleName]
- enabledTests :: PackageDescription -> [TestSuite]
- data Benchmark = Benchmark {
  - benchmarkName :: String
  - benchmarkInterface :: BenchmarkInterface
  - benchmarkBuildInfo :: BuildInfo
  - benchmarkEnabled :: Bool
  }
- data BenchmarkInterface
  - = BenchmarkExeV10 Version FilePath
  - | BenchmarkUnsupported BenchmarkType
- data BenchmarkType
  - = BenchmarkTypeExe Version
  - | BenchmarkTypeUnknown String Version
- benchmarkType :: Benchmark -> BenchmarkType
- knownBenchmarkTypes :: [BenchmarkType]
- emptyBenchmark :: Benchmark
- hasBenchmarks :: PackageDescription -> Bool
- withBenchmark :: PackageDescription -> (Benchmark -> IO ()) -> IO ()
- benchmarkModules :: Benchmark -> [ModuleName]
- enabledBenchmarks :: PackageDescription -> [Benchmark]
- data BuildInfo = BuildInfo {
  - buildable :: Bool
  - buildTools :: [Dependency]
  - cppOptions :: [String]
  - ccOptions :: [String]
  - ldOptions :: [String]
  - pkgconfigDepends :: [Dependency]
  - frameworks :: [String]
  - cSources :: [FilePath]
  - jsSources :: [FilePath]
  - hsSourceDirs :: [FilePath]
  - otherModules :: [ModuleName]
  - defaultLanguage :: Maybe Language
  - otherLanguages :: [Language]
  - defaultExtensions :: [Extension]
  - otherExtensions :: [Extension]
  - oldExtensions :: [Extension]
  - extraLibs :: [String]
  - extraGHCiLibs :: [String]
  - extraLibDirs :: [String]
  - includeDirs :: [FilePath]
  - includes :: [FilePath]
  - installIncludes :: [FilePath]
  - options :: [(CompilerFlavor, [String])]
  - profOptions :: [(CompilerFlavor, [String])]
  - sharedOptions :: [(CompilerFlavor, [String])]
  - customFieldsBI :: [(String, String)]
  - targetBuildDepends :: [Dependency]
  - targetBuildRenaming :: Map PackageName ModuleRenaming
  }
- emptyBuildInfo :: BuildInfo
- allBuildInfo :: PackageDescription -> [BuildInfo]
- allLanguages :: BuildInfo -> [Language]
- allExtensions :: BuildInfo -> [Extension]
- usedExtensions :: BuildInfo -> [Extension]
- hcOptions :: CompilerFlavor -> BuildInfo -> [String]
- hcProfOptions :: CompilerFlavor -> BuildInfo -> [String]
- hcSharedOptions :: CompilerFlavor -> BuildInfo -> [String]
- type HookedBuildInfo = (Maybe BuildInfo, [(String, BuildInfo)])
- emptyHookedBuildInfo :: HookedBuildInfo
- updatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription
- data GenericPackageDescription = GenericPackageDescription {
  - packageDescription :: PackageDescription
  - genPackageFlags :: [Flag]
  - condLibrary :: Maybe (CondTree ConfVar [Dependency] Library)
  - condExecutables :: [(String, CondTree ConfVar [Dependency] Executable)]
  - condTestSuites :: [(String, CondTree ConfVar [Dependency] TestSuite)]
  - condBenchmarks :: [(String, CondTree ConfVar [Dependency] Benchmark)]
  }
- data Flag = MkFlag {
  - flagName :: FlagName
  - flagDescription :: String
  - flagDefault :: Bool
  - flagManual :: Bool
  }
- newtype FlagName = FlagName String
- type FlagAssignment = [(FlagName, Bool)]
- data CondTree v c a = CondNode {
  - condTreeData :: a
  - condTreeConstraints :: c
  - condTreeComponents :: [(Condition v, CondTree v c a, Maybe (CondTree v c a))]
  }
- data ConfVar
  - = OS OS
  - | Arch Arch
  - | Flag FlagName
  - | Impl CompilerFlavor VersionRange
- data Condition c
  - = Var c
  - | Lit Bool
  - | CNot (Condition c)
  - | COr (Condition c) (Condition c)
  - | CAnd (Condition c) (Condition c)
- cNot :: Condition a -> Condition a
- data SourceRepo = SourceRepo {
  - repoKind :: RepoKind
  - repoType :: Maybe RepoType
  - repoLocation :: Maybe String
  - repoModule :: Maybe String
  - repoBranch :: Maybe String
  - repoTag :: Maybe String
  - repoSubdir :: Maybe FilePath
  }
- data RepoKind
  - = RepoHead
  - | RepoThis
  - | RepoKindUnknown String
- data RepoType
  - = Darcs
  - | Git
  - | SVN
  - | CVS
  - | Mercurial
  - | GnuArch
  - | Bazaar
  - | Monotone
  - | OtherRepoType String
- knownRepoTypes :: [RepoType]
- data SetupBuildInfo = SetupBuildInfo {
  - setupDepends :: [Dependency]
  }

# 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 package :: PackageIdentifier license :: License licenseFiles :: [FilePath] copyright :: String maintainer :: String author :: String stability :: String testedWith :: [(CompilerFlavor, VersionRange)] homepage :: String pkgUrl :: String bugReports :: String sourceRepos :: [SourceRepo] synopsis :: String A one-line summary of this package description :: String A more verbose description of this package category :: String customFieldsPD :: [(String, String)] Custom fields starting with x-, stored in a simple assoc-list. buildDepends :: [Dependency] YOU PROBABLY DON'T WANT TO USE THIS FIELD. This field is special! Depending on how far along processing the PackageDescription we are, the contents of this field are either nonsense, or the collected dependencies of *all* the components in this package. buildDepends is initialized by `finalizePackageDescription` and `flattenPackageDescription`; prior to that, dependency info is stored in the `CondTree` built around a `GenericPackageDescription`. When this resolution is done, dependency info is written to the inner `BuildInfo` and this field. This is all horrible, and #2066 tracks progress to get rid of this field. specVersionRaw :: Either Version VersionRange The version of the Cabal spec that this package description uses. For historical reasons this is specified with a version range but only ranges of the form `>= v` make sense. We are in the process of transitioning to specifying just a single version, not a range. buildType :: Maybe BuildType setupBuildInfo :: Maybe SetupBuildInfo library :: Maybe Library executables :: [Executable] testSuites :: [TestSuite] benchmarks :: [Benchmark] dataFiles :: [FilePath] dataDir :: FilePath extraSrcFiles :: [FilePath] extraTmpFiles :: [FilePath] extraDocFiles :: [FilePath]

Instances

Eq PackageDescription |
Methods (==) :: PackageDescription -> PackageDescription -> Bool (/=) :: PackageDescription -> PackageDescription -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c PackageDescription) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS PackageDescription Source readList :: ReadS [PackageDescription] Source readPrec :: ReadPrec PackageDescription Source readListPrec :: ReadPrec [PackageDescription] Source
Show PackageDescription |
Methods showsPrec :: Int -> PackageDescription -> ShowS Source show :: PackageDescription -> String Source showList :: [PackageDescription] -> ShowS Source
Generic PackageDescription |
Associated Types type Rep PackageDescription :: * -> * Source Methods from :: PackageDescription -> Rep PackageDescription x Source to :: Rep PackageDescription x -> PackageDescription Source
Binary PackageDescription |
Methods put :: PackageDescription -> Put Source get :: Get PackageDescription Source
Package PackageDescription |
Methods packageId :: PackageDescription -> PackageIdentifier Source
type Rep PackageDescription = D1 (MetaData "PackageDescription" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "PackageDescription" PrefixI True) ((:*:) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "package") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 PackageIdentifier)) ((:*:) (S1 (MetaSel (Just Symbol "license") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 License)) (S1 (MetaSel (Just Symbol "licenseFiles") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "copyright") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "maintainer") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))) ((:*:) (S1 (MetaSel (Just Symbol "author") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "stability") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "testedWith") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(CompilerFlavor, VersionRange)])) ((:*:) (S1 (MetaSel (Just Symbol "homepage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "pkgUrl") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "bugReports") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "sourceRepos") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [SourceRepo]))) ((:*:) (S1 (MetaSel (Just Symbol "synopsis") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "description") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))))) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "category") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) ((:*:) (S1 (MetaSel (Just Symbol "customFieldsPD") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(String, String)])) (S1 (MetaSel (Just Symbol "buildDepends") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Dependency])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "specVersionRaw") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Either Version VersionRange))) (S1 (MetaSel (Just Symbol "buildType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe BuildType)))) ((:*:) (S1 (MetaSel (Just Symbol "setupBuildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe SetupBuildInfo))) (S1 (MetaSel (Just Symbol "library") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Library)))))) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "executables") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Executable])) (S1 (MetaSel (Just Symbol "testSuites") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [TestSuite]))) ((:*:) (S1 (MetaSel (Just Symbol "benchmarks") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Benchmark])) (S1 (MetaSel (Just Symbol "dataFiles") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "dataDir") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath)) (S1 (MetaSel (Just Symbol "extraSrcFiles") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath]))) ((:*:) (S1 (MetaSel (Just Symbol "extraTmpFiles") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])) (S1 (MetaSel (Just Symbol "extraDocFiles") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])))))))) |

emptyPackageDescription :: PackageDescription Source

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.

descCabalVersion :: PackageDescription -> VersionRange Source

Deprecated: Use specVersion instead

The range of versions of the Cabal tools that this package is intended to work with.

This function is deprecated and should not be used for new purposes, only to support old packages that rely on the old interpretation.

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)
UnknownBuildType String | a package that uses an unknown build type cannot actually be built. Doing it this way rather than just giving a parse error means we get better error messages and allows you to inspect the rest of the package description.

Instances

Eq BuildType |
Methods (==) :: BuildType -> BuildType -> Bool (/=) :: BuildType -> BuildType -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c BuildType) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS BuildType Source readList :: ReadS [BuildType] Source readPrec :: ReadPrec BuildType Source readListPrec :: ReadPrec [BuildType] Source
Show BuildType |
Methods showsPrec :: Int -> BuildType -> ShowS Source show :: BuildType -> String Source showList :: [BuildType] -> ShowS Source
Generic BuildType |
Associated Types type Rep BuildType :: * -> * Source Methods from :: BuildType -> Rep BuildType x Source to :: Rep BuildType x -> BuildType Source
Binary BuildType |
Methods put :: BuildType -> Put Source get :: Get BuildType Source
Text BuildType |
Methods disp :: BuildType -> Doc Source parse :: ReadP r BuildType Source
type Rep BuildType = D1 (MetaData "BuildType" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) ((:+:) (C1 (MetaCons "Simple" PrefixI False) U1) (C1 (MetaCons "Configure" PrefixI False) U1)) ((:+:) (C1 (MetaCons "Make" PrefixI False) U1) ((:+:) (C1 (MetaCons "Custom" PrefixI False) U1) (C1 (MetaCons "UnknownBuildType" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))))) |

knownBuildTypes :: [BuildType] Source

## Renaming

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`".

Constructors

ModuleRenaming Bool [(ModuleName, ModuleName)] |

Instances

Eq ModuleRenaming |
Methods (==) :: ModuleRenaming -> ModuleRenaming -> Bool (/=) :: ModuleRenaming -> ModuleRenaming -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c ModuleRenaming) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods compare :: ModuleRenaming -> ModuleRenaming -> Ordering (<) :: ModuleRenaming -> ModuleRenaming -> Bool (<=) :: ModuleRenaming -> ModuleRenaming -> Bool (>) :: ModuleRenaming -> ModuleRenaming -> Bool (>=) :: ModuleRenaming -> ModuleRenaming -> Bool max :: ModuleRenaming -> ModuleRenaming -> ModuleRenaming min :: ModuleRenaming -> ModuleRenaming -> ModuleRenaming
Read ModuleRenaming |
Methods readsPrec :: Int -> ReadS ModuleRenaming Source readList :: ReadS [ModuleRenaming] Source readPrec :: ReadPrec ModuleRenaming Source readListPrec :: ReadPrec [ModuleRenaming] Source
Show ModuleRenaming |
Methods showsPrec :: Int -> ModuleRenaming -> ShowS Source show :: ModuleRenaming -> String Source showList :: [ModuleRenaming] -> ShowS Source
Generic ModuleRenaming |
Associated Types type Rep ModuleRenaming :: * -> * Source Methods from :: ModuleRenaming -> Rep ModuleRenaming x Source to :: Rep ModuleRenaming x -> ModuleRenaming Source
Semigroup ModuleRenaming |
Methods (<>) :: ModuleRenaming -> ModuleRenaming -> ModuleRenaming Source sconcat :: NonEmpty ModuleRenaming -> ModuleRenaming Source stimes :: Integral b => b -> ModuleRenaming -> ModuleRenaming Source
Monoid ModuleRenaming |
Methods mempty :: ModuleRenaming Source mappend :: ModuleRenaming -> ModuleRenaming -> ModuleRenaming Source mconcat :: [ModuleRenaming] -> ModuleRenaming Source
Binary ModuleRenaming |
Methods put :: ModuleRenaming -> Put Source get :: Get ModuleRenaming Source
Text ModuleRenaming |
Methods disp :: ModuleRenaming -> Doc Source parse :: ReadP r ModuleRenaming Source
type Rep ModuleRenaming = D1 (MetaData "ModuleRenaming" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "ModuleRenaming" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(ModuleName, ModuleName)])))) |

defaultRenaming :: ModuleRenaming Source

lookupRenaming :: Package pkg => pkg -> Map PackageName ModuleRenaming -> ModuleRenaming Source

## Libraries

data Library Source

Constructors

Library |
Fields exposedModules :: [ModuleName] reexportedModules :: [ModuleReexport] requiredSignatures :: [ModuleName] What sigs need implementations? exposedSignatures :: [ModuleName] What sigs are visible to users? libExposed :: Bool Is the lib to be exposed by default? libBuildInfo :: BuildInfo

Instances

Eq Library |
Methods (==) :: Library -> Library -> Bool (/=) :: Library -> Library -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Library) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS Library Source readList :: ReadS [Library] Source readPrec :: ReadPrec Library Source readListPrec :: ReadPrec [Library] Source
Show Library |
Methods showsPrec :: Int -> Library -> ShowS Source show :: Library -> String Source showList :: [Library] -> ShowS Source
Generic Library |
Associated Types type Rep Library :: * -> * Source Methods from :: Library -> Rep Library x Source to :: Rep Library x -> Library Source
Semigroup Library |
Methods (<>) :: Library -> Library -> Library Source sconcat :: NonEmpty Library -> Library Source stimes :: Integral b => b -> Library -> Library Source
Monoid Library |
Methods mempty :: Library Source mappend :: Library -> Library -> Library Source mconcat :: [Library] -> Library Source
Binary Library |
Methods put :: Library -> Put Source get :: Get Library Source
type Rep Library = D1 (MetaData "Library" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "Library" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "exposedModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleName])) ((:*:) (S1 (MetaSel (Just Symbol "reexportedModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleReexport])) (S1 (MetaSel (Just Symbol "requiredSignatures") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleName])))) ((:*:) (S1 (MetaSel (Just Symbol "exposedSignatures") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleName])) ((:*:) (S1 (MetaSel (Just Symbol "libExposed") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) (S1 (MetaSel (Just Symbol "libBuildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BuildInfo)))))) |

data ModuleReexport Source

Constructors

ModuleReexport |
Fields moduleReexportOriginalPackage :: Maybe PackageName moduleReexportOriginalName :: ModuleName moduleReexportName :: ModuleName

Instances

Eq ModuleReexport |
Methods (==) :: ModuleReexport -> ModuleReexport -> Bool (/=) :: ModuleReexport -> ModuleReexport -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c ModuleReexport) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS ModuleReexport Source readList :: ReadS [ModuleReexport] Source readPrec :: ReadPrec ModuleReexport Source readListPrec :: ReadPrec [ModuleReexport] Source
Show ModuleReexport |
Methods showsPrec :: Int -> ModuleReexport -> ShowS Source show :: ModuleReexport -> String Source showList :: [ModuleReexport] -> ShowS Source
Generic ModuleReexport |
Associated Types type Rep ModuleReexport :: * -> * Source Methods from :: ModuleReexport -> Rep ModuleReexport x Source to :: Rep ModuleReexport x -> ModuleReexport Source
Binary ModuleReexport |
Methods put :: ModuleReexport -> Put Source get :: Get ModuleReexport Source
Text ModuleReexport |
Methods disp :: ModuleReexport -> Doc Source parse :: ReadP r ModuleReexport Source
type Rep ModuleReexport = D1 (MetaData "ModuleReexport" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "ModuleReexport" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "moduleReexportOriginalPackage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe PackageName))) ((:*:) (S1 (MetaSel (Just Symbol "moduleReexportOriginalName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ModuleName)) (S1 (MetaSel (Just Symbol "moduleReexportName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ModuleName))))) |

emptyLibrary :: Library Source

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

If the package description has a library section, call the given function with the library build info as argument.

hasLibs :: PackageDescription -> Bool Source

does this package have any libraries?

libModules :: Library -> [ModuleName] Source

Get all the module names from the library (exposed and internal modules) which need to be compiled. (This does not include reexports, which do not need to be compiled.)

## Executables

data Executable Source

Constructors

Executable |
Fields exeName :: String modulePath :: FilePath buildInfo :: BuildInfo

Instances

Eq Executable |
Methods (==) :: Executable -> Executable -> Bool (/=) :: Executable -> Executable -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Executable) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS Executable Source readList :: ReadS [Executable] Source readPrec :: ReadPrec Executable Source readListPrec :: ReadPrec [Executable] Source
Show Executable |
Methods showsPrec :: Int -> Executable -> ShowS Source show :: Executable -> String Source showList :: [Executable] -> ShowS Source
Generic Executable |
Associated Types type Rep Executable :: * -> * Source Methods from :: Executable -> Rep Executable x Source to :: Rep Executable x -> Executable Source
Semigroup Executable |
Methods (<>) :: Executable -> Executable -> Executable Source sconcat :: NonEmpty Executable -> Executable Source stimes :: Integral b => b -> Executable -> Executable Source
Monoid Executable |
Methods mempty :: Executable Source mappend :: Executable -> Executable -> Executable Source mconcat :: [Executable] -> Executable Source
Binary Executable |
Methods put :: Executable -> Put Source get :: Get Executable Source
type Rep Executable = D1 (MetaData "Executable" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "Executable" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "exeName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) ((:*:) (S1 (MetaSel (Just Symbol "modulePath") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath)) (S1 (MetaSel (Just Symbol "buildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BuildInfo))))) |

emptyExecutable :: Executable Source

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

Perform the action on each buildable `Executable` in the package description.

hasExes :: PackageDescription -> Bool Source

does this package have any executables?

exeModules :: Executable -> [ModuleName] Source

Get all the module names from an exe

# Tests

data TestSuite Source

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

Constructors

TestSuite |
Fields testName :: String testInterface :: TestSuiteInterface testBuildInfo :: BuildInfo testEnabled :: Bool

Instances

Eq TestSuite |
Methods (==) :: TestSuite -> TestSuite -> Bool (/=) :: TestSuite -> TestSuite -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c TestSuite) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS TestSuite Source readList :: ReadS [TestSuite] Source readPrec :: ReadPrec TestSuite Source readListPrec :: ReadPrec [TestSuite] Source
Show TestSuite |
Methods showsPrec :: Int -> TestSuite -> ShowS Source show :: TestSuite -> String Source showList :: [TestSuite] -> ShowS Source
Generic TestSuite |
Associated Types type Rep TestSuite :: * -> * Source Methods from :: TestSuite -> Rep TestSuite x Source to :: Rep TestSuite x -> TestSuite Source
Semigroup TestSuite |
Methods (<>) :: TestSuite -> TestSuite -> TestSuite Source sconcat :: NonEmpty TestSuite -> TestSuite Source stimes :: Integral b => b -> TestSuite -> TestSuite Source
Monoid TestSuite |
Methods mempty :: TestSuite Source mappend :: TestSuite -> TestSuite -> TestSuite Source mconcat :: [TestSuite] -> TestSuite Source
Binary TestSuite |
Methods put :: TestSuite -> Put Source get :: Get TestSuite Source
type Rep TestSuite = D1 (MetaData "TestSuite" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "TestSuite" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "testName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "testInterface") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TestSuiteInterface))) ((:*:) (S1 (MetaSel (Just Symbol "testBuildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BuildInfo)) (S1 (MetaSel (Just Symbol "testEnabled") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))))) |

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

Eq TestSuiteInterface |
Methods (==) :: TestSuiteInterface -> TestSuiteInterface -> Bool (/=) :: TestSuiteInterface -> TestSuiteInterface -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c TestSuiteInterface) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS TestSuiteInterface Source readList :: ReadS [TestSuiteInterface] Source readPrec :: ReadPrec TestSuiteInterface Source readListPrec :: ReadPrec [TestSuiteInterface] Source
Show TestSuiteInterface |
Methods showsPrec :: Int -> TestSuiteInterface -> ShowS Source show :: TestSuiteInterface -> String Source showList :: [TestSuiteInterface] -> ShowS Source
Generic TestSuiteInterface |
Associated Types type Rep TestSuiteInterface :: * -> * Source Methods from :: TestSuiteInterface -> Rep TestSuiteInterface x Source to :: Rep TestSuiteInterface x -> TestSuiteInterface Source
Semigroup TestSuiteInterface |
Methods (<>) :: TestSuiteInterface -> TestSuiteInterface -> TestSuiteInterface Source sconcat :: NonEmpty TestSuiteInterface -> TestSuiteInterface Source stimes :: Integral b => b -> TestSuiteInterface -> TestSuiteInterface Source
Monoid TestSuiteInterface |
Methods mempty :: TestSuiteInterface Source mappend :: TestSuiteInterface -> TestSuiteInterface -> TestSuiteInterface Source mconcat :: [TestSuiteInterface] -> TestSuiteInterface Source
Binary TestSuiteInterface |
Methods put :: TestSuiteInterface -> Put Source get :: Get TestSuiteInterface Source
type Rep TestSuiteInterface = D1 (MetaData "TestSuiteInterface" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) (C1 (MetaCons "TestSuiteExeV10" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath)))) ((:+:) (C1 (MetaCons "TestSuiteLibV09" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ModuleName)))) (C1 (MetaCons "TestSuiteUnsupported" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TestType))))) |

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

Eq TestType |
Methods (==) :: TestType -> TestType -> Bool (/=) :: TestType -> TestType -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c TestType) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS TestType Source readList :: ReadS [TestType] Source readPrec :: ReadPrec TestType Source readListPrec :: ReadPrec [TestType] Source
Show TestType |
Methods showsPrec :: Int -> TestType -> ShowS Source show :: TestType -> String Source showList :: [TestType] -> ShowS Source
Generic TestType |
Associated Types type Rep TestType :: * -> * Source Methods from :: TestType -> Rep TestType x Source to :: Rep TestType x -> TestType Source
Binary TestType |
Methods put :: TestType -> Put Source get :: Get TestType Source
Text TestType |
Methods disp :: TestType -> Doc Source parse :: ReadP r TestType Source
type Rep TestType = D1 (MetaData "TestType" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) (C1 (MetaCons "TestTypeExe" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version))) ((:+:) (C1 (MetaCons "TestTypeLib" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version))) (C1 (MetaCons "TestTypeUnknown" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version)))))) |

testType :: TestSuite -> TestType Source

knownTestTypes :: [TestType] Source

emptyTestSuite :: TestSuite Source

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.

testModules :: TestSuite -> [ModuleName] Source

Get all the module names from a test suite.

enabledTests :: PackageDescription -> [TestSuite] Source

Get all the enabled test suites from a package.

# Benchmarks

data Benchmark Source

A "benchmark" stanza in a cabal file.

Constructors

Benchmark |
Fields benchmarkName :: String benchmarkInterface :: BenchmarkInterface benchmarkBuildInfo :: BuildInfo benchmarkEnabled :: Bool

Instances

Eq Benchmark |
Methods (==) :: Benchmark -> Benchmark -> Bool (/=) :: Benchmark -> Benchmark -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Benchmark) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS Benchmark Source readList :: ReadS [Benchmark] Source readPrec :: ReadPrec Benchmark Source readListPrec :: ReadPrec [Benchmark] Source
Show Benchmark |
Methods showsPrec :: Int -> Benchmark -> ShowS Source show :: Benchmark -> String Source showList :: [Benchmark] -> ShowS Source
Generic Benchmark |
Associated Types type Rep Benchmark :: * -> * Source Methods from :: Benchmark -> Rep Benchmark x Source to :: Rep Benchmark x -> Benchmark Source
Semigroup Benchmark |
Methods (<>) :: Benchmark -> Benchmark -> Benchmark Source sconcat :: NonEmpty Benchmark -> Benchmark Source stimes :: Integral b => b -> Benchmark -> Benchmark Source
Monoid Benchmark |
Methods mempty :: Benchmark Source mappend :: Benchmark -> Benchmark -> Benchmark Source mconcat :: [Benchmark] -> Benchmark Source
Binary Benchmark |
Methods put :: Benchmark -> Put Source get :: Get Benchmark Source
type Rep Benchmark = D1 (MetaData "Benchmark" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "Benchmark" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "benchmarkName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Just Symbol "benchmarkInterface") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BenchmarkInterface))) ((:*:) (S1 (MetaSel (Just Symbol "benchmarkBuildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BuildInfo)) (S1 (MetaSel (Just Symbol "benchmarkEnabled") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))))) |

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

Eq BenchmarkInterface |
Methods (==) :: BenchmarkInterface -> BenchmarkInterface -> Bool (/=) :: BenchmarkInterface -> BenchmarkInterface -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c BenchmarkInterface) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS BenchmarkInterface Source readList :: ReadS [BenchmarkInterface] Source readPrec :: ReadPrec BenchmarkInterface Source readListPrec :: ReadPrec [BenchmarkInterface] Source
Show BenchmarkInterface |
Methods showsPrec :: Int -> BenchmarkInterface -> ShowS Source show :: BenchmarkInterface -> String Source showList :: [BenchmarkInterface] -> ShowS Source
Generic BenchmarkInterface |
Associated Types type Rep BenchmarkInterface :: * -> * Source Methods from :: BenchmarkInterface -> Rep BenchmarkInterface x Source to :: Rep BenchmarkInterface x -> BenchmarkInterface Source
Semigroup BenchmarkInterface |
Methods (<>) :: BenchmarkInterface -> BenchmarkInterface -> BenchmarkInterface Source sconcat :: NonEmpty BenchmarkInterface -> BenchmarkInterface Source stimes :: Integral b => b -> BenchmarkInterface -> BenchmarkInterface Source
Monoid BenchmarkInterface |
Methods mempty :: BenchmarkInterface Source mappend :: BenchmarkInterface -> BenchmarkInterface -> BenchmarkInterface Source mconcat :: [BenchmarkInterface] -> BenchmarkInterface Source
Binary BenchmarkInterface |
Methods put :: BenchmarkInterface -> Put Source get :: Get BenchmarkInterface Source
type Rep BenchmarkInterface = D1 (MetaData "BenchmarkInterface" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) (C1 (MetaCons "BenchmarkExeV10" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath)))) (C1 (MetaCons "BenchmarkUnsupported" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BenchmarkType)))) |

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

Eq BenchmarkType |
Methods (==) :: BenchmarkType -> BenchmarkType -> Bool (/=) :: BenchmarkType -> BenchmarkType -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c BenchmarkType) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS BenchmarkType Source readList :: ReadS [BenchmarkType] Source readPrec :: ReadPrec BenchmarkType Source readListPrec :: ReadPrec [BenchmarkType] Source
Show BenchmarkType |
Methods showsPrec :: Int -> BenchmarkType -> ShowS Source show :: BenchmarkType -> String Source showList :: [BenchmarkType] -> ShowS Source
Generic BenchmarkType |
Associated Types type Rep BenchmarkType :: * -> * Source Methods from :: BenchmarkType -> Rep BenchmarkType x Source to :: Rep BenchmarkType x -> BenchmarkType Source
Binary BenchmarkType |
Methods put :: BenchmarkType -> Put Source get :: Get BenchmarkType Source
Text BenchmarkType |
Methods disp :: BenchmarkType -> Doc Source parse :: ReadP r BenchmarkType Source
type Rep BenchmarkType = D1 (MetaData "BenchmarkType" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) (C1 (MetaCons "BenchmarkTypeExe" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version))) (C1 (MetaCons "BenchmarkTypeUnknown" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Version))))) |

benchmarkType :: Benchmark -> BenchmarkType Source

knownBenchmarkTypes :: [BenchmarkType] Source

emptyBenchmark :: Benchmark Source

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.

benchmarkModules :: Benchmark -> [ModuleName] Source

Get all the module names from a benchmark.

enabledBenchmarks :: PackageDescription -> [Benchmark] Source

Get all the enabled benchmarks from a package.

# Build information

data BuildInfo Source

Constructors

BuildInfo |
Fields buildable :: Bool component is buildable here buildTools :: [Dependency] tools needed to build this bit cppOptions :: [String] options for pre-processing Haskell code ccOptions :: [String] options for C compiler ldOptions :: [String] options for linker pkgconfigDepends :: [Dependency] pkg-config packages that are used frameworks :: [String] support frameworks for Mac OS X cSources :: [FilePath] jsSources :: [FilePath] hsSourceDirs :: [FilePath] where to look for the Haskell module hierarchy otherModules :: [ModuleName] non-exposed or non-main modules defaultLanguage :: Maybe Language language used when not explicitly specified otherLanguages :: [Language] other languages used within the package defaultExtensions :: [Extension] language extensions used by all modules otherExtensions :: [Extension] other language extensions used within the package oldExtensions :: [Extension] the old extensions field, treated same as `defaultExtensions` extraLibs :: [String] what libraries to link with when compiling a program that uses your package extraGHCiLibs :: [String] if present, overrides extraLibs when package is loaded with GHCi. extraLibDirs :: [String] includeDirs :: [FilePath] directories to find .h files includes :: [FilePath] The .h files to be found in includeDirs installIncludes :: [FilePath] .h files to install with the package options :: [(CompilerFlavor, [String])] profOptions :: [(CompilerFlavor, [String])] sharedOptions :: [(CompilerFlavor, [String])] customFieldsBI :: [(String, String)] Custom fields starting with x-, stored in a simple assoc-list. targetBuildDepends :: [Dependency] Dependencies specific to a library or executable target targetBuildRenaming :: Map PackageName ModuleRenaming

Instances

Eq BuildInfo |
Methods (==) :: BuildInfo -> BuildInfo -> Bool (/=) :: BuildInfo -> BuildInfo -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c BuildInfo) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS BuildInfo Source readList :: ReadS [BuildInfo] Source readPrec :: ReadPrec BuildInfo Source readListPrec :: ReadPrec [BuildInfo] Source
Show BuildInfo |
Methods showsPrec :: Int -> BuildInfo -> ShowS Source show :: BuildInfo -> String Source showList :: [BuildInfo] -> ShowS Source
Generic BuildInfo |
Associated Types type Rep BuildInfo :: * -> * Source Methods from :: BuildInfo -> Rep BuildInfo x Source to :: Rep BuildInfo x -> BuildInfo Source
Semigroup BuildInfo |
Methods (<>) :: BuildInfo -> BuildInfo -> BuildInfo Source sconcat :: NonEmpty BuildInfo -> BuildInfo Source stimes :: Integral b => b -> BuildInfo -> BuildInfo Source
Monoid BuildInfo |
Methods mempty :: BuildInfo Source mappend :: BuildInfo -> BuildInfo -> BuildInfo Source mconcat :: [BuildInfo] -> BuildInfo Source
Binary BuildInfo |
Methods put :: BuildInfo -> Put Source get :: Get BuildInfo Source
type Rep BuildInfo = D1 (MetaData "BuildInfo" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "BuildInfo" PrefixI True) ((:*:) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "buildable") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) ((:*:) (S1 (MetaSel (Just Symbol "buildTools") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Dependency])) (S1 (MetaSel (Just Symbol "cppOptions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "ccOptions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String])) (S1 (MetaSel (Just Symbol "ldOptions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String]))) ((:*:) (S1 (MetaSel (Just Symbol "pkgconfigDepends") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Dependency])) (S1 (MetaSel (Just Symbol "frameworks") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String]))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "cSources") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])) ((:*:) (S1 (MetaSel (Just Symbol "jsSources") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])) (S1 (MetaSel (Just Symbol "hsSourceDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "otherModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleName])) (S1 (MetaSel (Just Symbol "defaultLanguage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Language)))) ((:*:) (S1 (MetaSel (Just Symbol "otherLanguages") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Language])) (S1 (MetaSel (Just Symbol "defaultExtensions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Extension])))))) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "otherExtensions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Extension])) ((:*:) (S1 (MetaSel (Just Symbol "oldExtensions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Extension])) (S1 (MetaSel (Just Symbol "extraLibs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "extraGHCiLibs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String])) (S1 (MetaSel (Just Symbol "extraLibDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String]))) ((:*:) (S1 (MetaSel (Just Symbol "includeDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])) (S1 (MetaSel (Just Symbol "includes") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath]))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "installIncludes") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [FilePath])) ((:*:) (S1 (MetaSel (Just Symbol "options") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(CompilerFlavor, [String])])) (S1 (MetaSel (Just Symbol "profOptions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(CompilerFlavor, [String])])))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "sharedOptions") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(CompilerFlavor, [String])])) (S1 (MetaSel (Just Symbol "customFieldsBI") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(String, String)]))) ((:*:) (S1 (MetaSel (Just Symbol "targetBuildDepends") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Dependency])) (S1 (MetaSel (Just Symbol "targetBuildRenaming") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Map PackageName ModuleRenaming))))))))) |

emptyBuildInfo :: BuildInfo Source

allBuildInfo :: PackageDescription -> [BuildInfo] Source

The `BuildInfo` for the library (if there is one and it's buildable), and all buildable executables, test suites and benchmarks. Useful for gathering dependencies.

allLanguages :: BuildInfo -> [Language] Source

The `Language`s used by this component

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

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

Select options for a particular Haskell compiler.

hcProfOptions :: CompilerFlavor -> BuildInfo -> [String] Source

hcSharedOptions :: CompilerFlavor -> BuildInfo -> [String] Source

## Supplementary build information

type HookedBuildInfo = (Maybe BuildInfo, [(String, BuildInfo)]) Source

emptyHookedBuildInfo :: HookedBuildInfo Source

updatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription Source

# package configuration

data GenericPackageDescription Source

Constructors

GenericPackageDescription |
Fields packageDescription :: PackageDescription genPackageFlags :: [Flag] condLibrary :: Maybe (CondTree ConfVar [Dependency] Library) condExecutables :: [(String, CondTree ConfVar [Dependency] Executable)] condTestSuites :: [(String, CondTree ConfVar [Dependency] TestSuite)] condBenchmarks :: [(String, CondTree ConfVar [Dependency] Benchmark)]

Instances

Eq GenericPackageDescription |
Methods (==) :: GenericPackageDescription -> GenericPackageDescription -> Bool (/=) :: GenericPackageDescription -> GenericPackageDescription -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c GenericPackageDescription) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods showsPrec :: Int -> GenericPackageDescription -> ShowS Source show :: GenericPackageDescription -> String Source showList :: [GenericPackageDescription] -> ShowS Source
Generic GenericPackageDescription |
Associated Types type Rep GenericPackageDescription :: * -> * Source Methods from :: GenericPackageDescription -> Rep GenericPackageDescription x Source to :: Rep GenericPackageDescription x -> GenericPackageDescription Source
Binary GenericPackageDescription |
Methods put :: GenericPackageDescription -> Put Source get :: Get GenericPackageDescription Source
Package GenericPackageDescription |
Methods packageId :: GenericPackageDescription -> PackageIdentifier Source
type Rep GenericPackageDescription = D1 (MetaData "GenericPackageDescription" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "GenericPackageDescription" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "packageDescription") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 PackageDescription)) ((:*:) (S1 (MetaSel (Just Symbol "genPackageFlags") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Flag])) (S1 (MetaSel (Just Symbol "condLibrary") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CondTree ConfVar [Dependency] Library)))))) ((:*:) (S1 (MetaSel (Just Symbol "condExecutables") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(String, CondTree ConfVar [Dependency] Executable)])) ((:*:) (S1 (MetaSel (Just Symbol "condTestSuites") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(String, CondTree ConfVar [Dependency] TestSuite)])) (S1 (MetaSel (Just Symbol "condBenchmarks") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(String, 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.

Constructors

MkFlag |
Fields flagName :: FlagName flagDescription :: String flagDefault :: Bool flagManual :: Bool

Instances

Eq Flag |
Methods (==) :: Flag -> Flag -> Bool (/=) :: Flag -> Flag -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Flag) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods showsPrec :: Int -> Flag -> ShowS Source show :: Flag -> String Source showList :: [Flag] -> ShowS Source
Generic Flag |
Associated Types type Rep Flag :: * -> * Source Methods from :: Flag -> Rep Flag x Source to :: Rep Flag x -> Flag Source
Binary Flag |
Methods put :: Flag -> Put Source get :: Get Flag Source
type Rep Flag = D1 (MetaData "Flag" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "MkFlag" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "flagName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FlagName)) (S1 (MetaSel (Just Symbol "flagDescription") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))) ((:*:) (S1 (MetaSel (Just Symbol "flagDefault") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) (S1 (MetaSel (Just Symbol "flagManual") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))))) |

newtype FlagName Source

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

Constructors

FlagName String |

Instances

Eq FlagName |
Methods (==) :: FlagName -> FlagName -> Bool (/=) :: FlagName -> FlagName -> Bool
Data FlagName |
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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c FlagName) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods compare :: FlagName -> FlagName -> Ordering (<) :: FlagName -> FlagName -> Bool (<=) :: FlagName -> FlagName -> Bool (>) :: FlagName -> FlagName -> Bool (>=) :: FlagName -> FlagName -> Bool max :: FlagName -> FlagName -> FlagName min :: FlagName -> FlagName -> FlagName
Read FlagName |
Methods readsPrec :: Int -> ReadS FlagName Source readList :: ReadS [FlagName] Source readPrec :: ReadPrec FlagName Source readListPrec :: ReadPrec [FlagName] Source
Show FlagName |
Methods showsPrec :: Int -> FlagName -> ShowS Source show :: FlagName -> String Source showList :: [FlagName] -> ShowS Source
Generic FlagName |
Associated Types type Rep FlagName :: * -> * Source Methods from :: FlagName -> Rep FlagName x Source to :: Rep FlagName x -> FlagName Source
Binary FlagName |
Methods put :: FlagName -> Put Source get :: Get FlagName Source
type Rep FlagName = D1 (MetaData "FlagName" "Distribution.PackageDescription" "Cabal-1.23.1.0" True) (C1 (MetaCons "FlagName" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))) |

type FlagAssignment = [(FlagName, Bool)] 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)]`

data CondTree v c a Source

Constructors

CondNode |
Fields condTreeData :: a condTreeConstraints :: c condTreeComponents :: [(Condition v, CondTree v c a, Maybe (CondTree v c a))]

Instances

(Eq v, Eq c, Eq a) => Eq (CondTree v c a) |
Methods (==) :: CondTree v c a -> CondTree v c a -> Bool (/=) :: CondTree v c a -> CondTree v c a -> Bool
(Data v, Data c, Data a) => Data (CondTree v c a) |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CondTree v c a -> c (CondTree v c a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (CondTree v c a) Source toConstr :: CondTree v c a -> Constr Source dataTypeOf :: CondTree v c a -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c (CondTree v c a)) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (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 :: (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 v, Show c, Show a) => Show (CondTree v c a) |
Methods showsPrec :: Int -> CondTree v c a -> ShowS Source show :: CondTree v c a -> String Source showList :: [CondTree v c a] -> ShowS Source
Generic (CondTree v c a) |
Associated Types type Rep (CondTree v c a) :: * -> * Source Methods from :: CondTree v c a -> Rep (CondTree v c a) x Source to :: Rep (CondTree v c a) x -> CondTree v c a Source
(Binary v, Binary c, Binary a) => Binary (CondTree v c a) |
Methods put :: CondTree v c a -> Put Source get :: Get (CondTree v c a) Source
type Rep (CondTree v c a) = D1 (MetaData "CondTree" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "CondNode" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "condTreeData") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) ((:*:) (S1 (MetaSel (Just Symbol "condTreeConstraints") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 c)) (S1 (MetaSel (Just Symbol "condTreeComponents") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Condition v, CondTree v c a, Maybe (CondTree v c a))]))))) |

data ConfVar Source

A `ConfVar` represents the variable type used.

Constructors

OS OS |
Arch Arch |
Flag FlagName |
Impl CompilerFlavor VersionRange |

Instances

Eq ConfVar |
Methods (==) :: ConfVar -> ConfVar -> Bool (/=) :: ConfVar -> ConfVar -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c ConfVar) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods showsPrec :: Int -> ConfVar -> ShowS Source show :: ConfVar -> String Source showList :: [ConfVar] -> ShowS Source
Generic ConfVar |
Associated Types type Rep ConfVar :: * -> * Source Methods from :: ConfVar -> Rep ConfVar x Source to :: Rep ConfVar x -> ConfVar Source
Binary ConfVar |
Methods put :: ConfVar -> Put Source get :: Get ConfVar Source
type Rep ConfVar = D1 (MetaData "ConfVar" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) ((:+:) (C1 (MetaCons "OS" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 OS))) (C1 (MetaCons "Arch" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Arch)))) ((:+:) (C1 (MetaCons "Flag" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FlagName))) (C1 (MetaCons "Impl" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 CompilerFlavor)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 VersionRange)))))) |

data Condition c Source

A boolean expression parameterized over the variable type used.

Constructors

Var c |
Lit Bool |
CNot (Condition c) |
COr (Condition c) (Condition c) |
CAnd (Condition c) (Condition c) |

Instances

Monad Condition |
Methods (>>=) :: Condition a -> (a -> Condition b) -> Condition b Source (>>) :: Condition a -> Condition b -> Condition b Source return :: a -> Condition a Source fail :: String -> Condition a Source
Functor Condition |
Methods fmap :: (a -> b) -> Condition a -> Condition b Source (<$) :: a -> Condition b -> Condition a Source
Applicative Condition |
Methods pure :: a -> Condition a Source (<*>) :: Condition (a -> b) -> Condition a -> Condition b Source (*>) :: Condition a -> Condition b -> Condition b Source (<*) :: Condition a -> Condition b -> Condition a Source
Foldable Condition |
Methods fold :: Monoid m => Condition m -> m Source foldMap :: Monoid m => (a -> m) -> Condition a -> m Source foldr :: (a -> b -> b) -> b -> Condition a -> b Source foldr' :: (a -> b -> b) -> b -> Condition a -> b Source foldl :: (b -> a -> b) -> b -> Condition a -> b Source foldl' :: (b -> a -> b) -> b -> Condition a -> b Source foldr1 :: (a -> a -> a) -> Condition a -> a Source foldl1 :: (a -> a -> a) -> Condition a -> a Source toList :: Condition a -> [a] Source null :: Condition a -> Bool Source length :: Condition a -> Int Source elem :: Eq a => a -> Condition a -> Bool Source maximum :: Ord a => Condition a -> a Source minimum :: Ord a => Condition a -> a Source sum :: Num a => Condition a -> a Source product :: Num a => Condition a -> a Source
Traversable Condition |
Methods traverse :: Applicative f => (a -> f b) -> Condition a -> f (Condition b) Source sequenceA :: Applicative f => Condition (f a) -> f (Condition a) Source mapM :: Monad m => (a -> m b) -> Condition a -> m (Condition b) Source sequence :: Monad m => Condition (m a) -> m (Condition a) Source
Alternative Condition |
Methods empty :: Condition a Source (<|>) :: Condition a -> Condition a -> Condition a Source some :: Condition a -> Condition [a] Source many :: Condition a -> Condition [a] Source
MonadPlus Condition |
Methods mzero :: Condition a Source mplus :: Condition a -> Condition a -> Condition a Source
Eq c => Eq (Condition c) |
Methods (==) :: Condition c -> Condition c -> Bool (/=) :: Condition c -> Condition c -> Bool
Data c => Data (Condition c) |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Condition c -> c (Condition c) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Condition c) Source toConstr :: Condition c -> Constr Source dataTypeOf :: Condition c -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c (Condition c)) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (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 :: (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) |
Methods showsPrec :: Int -> Condition c -> ShowS Source show :: Condition c -> String Source showList :: [Condition c] -> ShowS Source
Generic (Condition c) |
Associated Types type Rep (Condition c) :: * -> * Source Methods from :: Condition c -> Rep (Condition c) x Source to :: Rep (Condition c) x -> Condition c Source
Semigroup (Condition a) |
Methods (<>) :: Condition a -> Condition a -> Condition a Source sconcat :: NonEmpty (Condition a) -> Condition a Source stimes :: Integral b => b -> Condition a -> Condition a Source
Monoid (Condition a) |
Methods mempty :: Condition a Source mappend :: Condition a -> Condition a -> Condition a Source mconcat :: [Condition a] -> Condition a Source
Binary c => Binary (Condition c) |
Methods put :: Condition c -> Put Source get :: Get (Condition c) Source
type Rep (Condition c) = D1 (MetaData "Condition" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) ((:+:) (C1 (MetaCons "Var" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 c))) (C1 (MetaCons "Lit" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))) ((:+:) (C1 (MetaCons "CNot" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Condition c)))) ((:+:) (C1 (MetaCons "COr" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Condition c))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Condition c))))) (C1 (MetaCons "CAnd" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Condition c))) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Condition c)))))))) |

cNot :: Condition a -> Condition a Source

# 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

Eq SourceRepo |
Methods (==) :: SourceRepo -> SourceRepo -> Bool (/=) :: SourceRepo -> SourceRepo -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c SourceRepo) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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
Read SourceRepo |
Methods readsPrec :: Int -> ReadS SourceRepo Source readList :: ReadS [SourceRepo] Source readPrec :: ReadPrec SourceRepo Source readListPrec :: ReadPrec [SourceRepo] Source
Show SourceRepo |
Methods showsPrec :: Int -> SourceRepo -> ShowS Source show :: SourceRepo -> String Source showList :: [SourceRepo] -> ShowS Source
Generic SourceRepo |
Associated Types type Rep SourceRepo :: * -> * Source Methods from :: SourceRepo -> Rep SourceRepo x Source to :: Rep SourceRepo x -> SourceRepo Source
Binary SourceRepo |
Methods put :: SourceRepo -> Put Source get :: Get SourceRepo Source
type Rep SourceRepo = D1 (MetaData "SourceRepo" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "SourceRepo" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "repoKind") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 RepoKind)) ((:*:) (S1 (MetaSel (Just Symbol "repoType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe RepoType))) (S1 (MetaSel (Just Symbol "repoLocation") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "repoModule") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String))) (S1 (MetaSel (Just Symbol "repoBranch") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) ((:*:) (S1 (MetaSel (Just Symbol "repoTag") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String))) (S1 (MetaSel (Just Symbol "repoSubdir") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe FilePath))))))) |

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

Eq RepoKind |
Methods (==) :: RepoKind -> RepoKind -> Bool (/=) :: RepoKind -> RepoKind -> Bool
Data RepoKind |
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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c RepoKind) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods compare :: RepoKind -> RepoKind -> Ordering (<) :: RepoKind -> RepoKind -> Bool (<=) :: RepoKind -> RepoKind -> Bool (>) :: RepoKind -> RepoKind -> Bool (>=) :: RepoKind -> RepoKind -> Bool max :: RepoKind -> RepoKind -> RepoKind min :: RepoKind -> RepoKind -> RepoKind
Read RepoKind |
Methods readsPrec :: Int -> ReadS RepoKind Source readList :: ReadS [RepoKind] Source readPrec :: ReadPrec RepoKind Source readListPrec :: ReadPrec [RepoKind] Source
Show RepoKind |
Methods showsPrec :: Int -> RepoKind -> ShowS Source show :: RepoKind -> String Source showList :: [RepoKind] -> ShowS Source
Generic RepoKind |
Associated Types type Rep RepoKind :: * -> * Source Methods from :: RepoKind -> Rep RepoKind x Source to :: Rep RepoKind x -> RepoKind Source
Binary RepoKind |
Methods put :: RepoKind -> Put Source get :: Get RepoKind Source
Text RepoKind |
Methods disp :: RepoKind -> Doc Source parse :: ReadP r RepoKind Source
type Rep RepoKind = D1 (MetaData "RepoKind" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) (C1 (MetaCons "RepoHead" PrefixI False) U1) ((:+:) (C1 (MetaCons "RepoThis" PrefixI False) U1) (C1 (MetaCons "RepoKindUnknown" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))))) |

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.

Constructors

Darcs |
Git |
SVN |
CVS |
Mercurial |
GnuArch |
Bazaar |
Monotone |
OtherRepoType String |

Instances

Eq RepoType |
Methods (==) :: RepoType -> RepoType -> Bool (/=) :: RepoType -> RepoType -> Bool
Data RepoType |
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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c RepoType) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods compare :: RepoType -> RepoType -> Ordering (<) :: RepoType -> RepoType -> Bool (<=) :: RepoType -> RepoType -> Bool (>) :: RepoType -> RepoType -> Bool (>=) :: RepoType -> RepoType -> Bool max :: RepoType -> RepoType -> RepoType min :: RepoType -> RepoType -> RepoType
Read RepoType |
Methods readsPrec :: Int -> ReadS RepoType Source readList :: ReadS [RepoType] Source readPrec :: ReadPrec RepoType Source readListPrec :: ReadPrec [RepoType] Source
Show RepoType |
Methods showsPrec :: Int -> RepoType -> ShowS Source show :: RepoType -> String Source showList :: [RepoType] -> ShowS Source
Generic RepoType |
Associated Types type Rep RepoType :: * -> * Source Methods from :: RepoType -> Rep RepoType x Source to :: Rep RepoType x -> RepoType Source
Binary RepoType |
Methods put :: RepoType -> Put Source get :: Get RepoType Source
Text RepoType |
Methods disp :: RepoType -> Doc Source parse :: ReadP r RepoType Source
type Rep RepoType = D1 (MetaData "RepoType" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "Darcs" PrefixI False) U1) (C1 (MetaCons "Git" PrefixI False) U1)) ((:+:) (C1 (MetaCons "SVN" PrefixI False) U1) (C1 (MetaCons "CVS" PrefixI False) U1))) ((:+:) ((:+:) (C1 (MetaCons "Mercurial" PrefixI False) U1) (C1 (MetaCons "GnuArch" PrefixI False) U1)) ((:+:) (C1 (MetaCons "Bazaar" PrefixI False) U1) ((:+:) (C1 (MetaCons "Monotone" PrefixI False) U1) (C1 (MetaCons "OtherRepoType" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))))))) |

knownRepoTypes :: [RepoType] Source

# Custom setup build information

data SetupBuildInfo Source

Constructors

SetupBuildInfo |
Fields setupDepends :: [Dependency]

Instances

Eq SetupBuildInfo |
Methods (==) :: SetupBuildInfo -> SetupBuildInfo -> Bool (/=) :: SetupBuildInfo -> SetupBuildInfo -> Bool
Data 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c SetupBuildInfo) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 :: (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 |
Methods readsPrec :: Int -> ReadS SetupBuildInfo Source readList :: ReadS [SetupBuildInfo] Source readPrec :: ReadPrec SetupBuildInfo Source readListPrec :: ReadPrec [SetupBuildInfo] Source
Show SetupBuildInfo |
Methods showsPrec :: Int -> SetupBuildInfo -> ShowS Source show :: SetupBuildInfo -> String Source showList :: [SetupBuildInfo] -> ShowS Source
Generic SetupBuildInfo |
Associated Types type Rep SetupBuildInfo :: * -> * Source Methods from :: SetupBuildInfo -> Rep SetupBuildInfo x Source to :: Rep SetupBuildInfo x -> SetupBuildInfo Source
Semigroup SetupBuildInfo |
Methods (<>) :: SetupBuildInfo -> SetupBuildInfo -> SetupBuildInfo Source sconcat :: NonEmpty SetupBuildInfo -> SetupBuildInfo Source stimes :: Integral b => b -> SetupBuildInfo -> SetupBuildInfo Source
Monoid SetupBuildInfo |
Methods mempty :: SetupBuildInfo Source mappend :: SetupBuildInfo -> SetupBuildInfo -> SetupBuildInfo Source mconcat :: [SetupBuildInfo] -> SetupBuildInfo Source
Binary SetupBuildInfo |
Methods put :: SetupBuildInfo -> Put Source get :: Get SetupBuildInfo Source
type Rep SetupBuildInfo = D1 (MetaData "SetupBuildInfo" "Distribution.PackageDescription" "Cabal-1.23.1.0" False) (C1 (MetaCons "SetupBuildInfo" PrefixI True) (S1 (MetaSel (Just Symbol "setupDepends") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Dependency]))) |