Distribution.InstalledPackageInfo

Cabal-1.22.5.0: A framework for packaging Haskell software

Copyright | (c) The University of Glasgow 2004
Maintainer | libraries@haskell.org
Portability | portable
Safe Haskell | None
Language | Haskell98

Distribution.InstalledPackageInfo

Description

This is the information about an installed package that is communicated to the `ghc-pkg` program in order to register a package. `ghc-pkg` now consumes this package format (as of version 6.4). This is specific to GHC at the moment.

The `.cabal` file format is for describing a package that is not yet installed. It has a lot of flexibility, like conditionals and dependency ranges. As such, that format is not at all suitable for describing a package that has already been built and installed. By the time we get to that stage, we have resolved all conditionals and resolved dependency version constraints to exact versions of dependent packages. So, this module defines the `InstalledPackageInfo` data structure that contains all the info we keep about an installed package. There is a parser and pretty printer. The textual format is rather simpler than the `.cabal` format: there are no sections, for example.

# Documentation

data InstalledPackageInfo_ m

Constructors

InstalledPackageInfo |
Fields installedPackageId :: InstalledPackageId sourcePackageId :: PackageId packageKey :: PackageKey license :: License copyright :: String maintainer :: String author :: String stability :: String homepage :: String pkgUrl :: String synopsis :: String description :: String category :: String exposed :: Bool exposedModules :: [ExposedModule] instantiatedWith :: [(m, OriginalModule)] hiddenModules :: [m] trusted :: Bool importDirs :: [FilePath] libraryDirs :: [FilePath] dataDir :: FilePath hsLibraries :: [String] extraLibraries :: [String] extraGHCiLibraries :: [String] includeDirs :: [FilePath] includes :: [String] depends :: [InstalledPackageId] ccOptions :: [String] ldOptions :: [String] frameworkDirs :: [FilePath] frameworks :: [String] haddockInterfaces :: [FilePath] haddockHTMLs :: [FilePath] pkgRoot :: Maybe FilePath

Instances

Read m => Read (InstalledPackageInfo_ m) |
Show m => Show (InstalledPackageInfo_ m) |
Generic (InstalledPackageInfo_ m) |
Binary m => Binary (InstalledPackageInfo_ m) |
PackageInstalled (InstalledPackageInfo_ str) |
Package (InstalledPackageInfo_ str) |
type Rep (InstalledPackageInfo_ m) |

type InstalledPackageInfo = InstalledPackageInfo_ ModuleName

data OriginalModule

Constructors

OriginalModule |
Fields originalPackageId :: InstalledPackageId originalModuleName :: ModuleName

Instances

Eq OriginalModule |
Read OriginalModule |
Show OriginalModule |
Generic OriginalModule |
Binary OriginalModule |
Text OriginalModule |
type Rep OriginalModule |

data ExposedModule

Constructors

ExposedModule |
Fields exposedName :: ModuleName exposedReexport :: Maybe OriginalModule exposedSignature :: Maybe OriginalModule

Instances

Read ExposedModule |
Show ExposedModule |
Generic ExposedModule |
Binary ExposedModule |
Text ExposedModule |
type Rep ExposedModule |

data ParseResult a

Constructors

ParseFailed PError |
ParseOk [PWarning] a |

Instances

Monad ParseResult |
Functor ParseResult |
Applicative ParseResult |
Show a => Show (ParseResult a) |

data PError

Constructors

AmbiguousParse String LineNo |
NoParse String LineNo |
TabsError LineNo |
FromString String (Maybe LineNo) |

Instances

Eq PError |
Show PError |

data PWarning

Instances

Eq PWarning |
Show PWarning |

emptyInstalledPackageInfo :: InstalledPackageInfo_ m

parseInstalledPackageInfo :: String -> ParseResult InstalledPackageInfo

showInstalledPackageInfo :: InstalledPackageInfo -> String

showInstalledPackageInfoField :: String -> Maybe (InstalledPackageInfo -> String)

showSimpleInstalledPackageInfoField :: String -> Maybe (InstalledPackageInfo -> String)

fieldsInstalledPackageInfo :: [FieldDescr InstalledPackageInfo]