| Copyright | Isaac Jones 2003-2004 |
|---|---|
| License | BSD3 |
| Maintainer | cabal-devel@haskell.org |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Distribution.Package
Description
Defines a package identifier along with a parser and pretty printer for it.
PackageIdentifiers consist of a name and an exact version. It also defines
a Dependency data type. A dependency is a package name and a version
range, like "foo >= 1.2 && < 2".
Synopsis
- module Distribution.Types.AbiHash
- module Distribution.Types.ComponentId
- module Distribution.Types.PackageId
- module Distribution.Types.UnitId
- module Distribution.Types.Module
- module Distribution.Types.PackageName
- module Distribution.Types.PkgconfigName
- module Distribution.Types.Dependency
- class Package pkg where
- packageName :: Package pkg => pkg -> PackageName
- packageVersion :: Package pkg => pkg -> Version
- class HasMungedPackageId pkg where
- mungedName' :: HasMungedPackageId pkg => pkg -> MungedPackageName
- mungedVersion' :: HasMungedPackageId munged => munged -> Version
- class Package pkg => HasUnitId pkg where
- installedPackageId :: HasUnitId pkg => pkg -> UnitId
- class HasUnitId pkg => PackageInstalled pkg where
Documentation
module Distribution.Types.AbiHash
module Distribution.Types.PackageId
module Distribution.Types.UnitId
module Distribution.Types.Module
class Package pkg where Source #
Class of things that have a PackageIdentifier
Types in this class are all notions of a package. This allows us to have different types for the different phases that packages go though, from simple name/id, package description, configured or installed packages.
Not all kinds of packages can be uniquely identified by a
PackageIdentifier. In particular, installed packages cannot, there may be
many installed instances of the same source package.
Minimal complete definition
Methods
packageId :: pkg -> PackageIdentifier Source #
Instances
| Package PackageIdentifier Source # | |
Defined in Distribution.Package Methods packageId :: PackageIdentifier -> PackageIdentifier Source # | |
| Package PackageDescription Source # | |
Defined in Distribution.Types.PackageDescription Methods packageId :: PackageDescription -> PackageIdentifier Source # | |
| Package GenericPackageDescription Source # | |
Defined in Distribution.Types.GenericPackageDescription Methods packageId :: GenericPackageDescription -> PackageIdentifier Source # | |
| Package InstalledPackageInfo Source # | |
Defined in Distribution.Types.InstalledPackageInfo Methods packageId :: InstalledPackageInfo -> PackageIdentifier Source # | |
| Package LinkedComponent Source # | |
Defined in Distribution.Backpack.LinkedComponent Methods | |
| Package (AnnotatedId id) Source # | |
Defined in Distribution.Types.AnnotatedId Methods packageId :: AnnotatedId id -> PackageIdentifier Source # | |
packageName :: Package pkg => pkg -> PackageName Source #
packageVersion :: Package pkg => pkg -> Version Source #
class HasMungedPackageId pkg where Source #
Minimal complete definition
Methods
mungedId :: pkg -> MungedPackageId Source #
Instances
| HasMungedPackageId MungedPackageId Source # | |
Defined in Distribution.Package Methods | |
| HasMungedPackageId InstalledPackageInfo Source # | |
Defined in Distribution.Types.InstalledPackageInfo Methods mungedId :: InstalledPackageInfo -> MungedPackageId Source # | |
mungedName' :: HasMungedPackageId pkg => pkg -> MungedPackageName Source #
mungedVersion' :: HasMungedPackageId munged => munged -> Version Source #
class Package pkg => HasUnitId pkg where Source #
Packages that have an installed unit ID
Minimal complete definition
Methods
installedUnitId :: pkg -> UnitId Source #
Instances
| HasUnitId InstalledPackageInfo Source # | |
Defined in Distribution.Types.InstalledPackageInfo Methods | |
installedPackageId :: HasUnitId pkg => pkg -> UnitId Source #
Deprecated: Use installedUnitId instead. This symbol will be removed in Cabal-3.0 (est. Oct 2018).
Compatibility wrapper for Cabal pre-1.24.
class HasUnitId pkg => PackageInstalled pkg where Source #
Class of installed packages.
The primary data type which is an instance of this package is
InstalledPackageInfo, but when we are doing install plans in Cabal install
we may have other, installed package-like things which contain more metadata.
Installed packages have exact dependencies installedDepends.
Minimal complete definition
Methods
installedDepends :: pkg -> [UnitId] Source #
Instances
| PackageInstalled InstalledPackageInfo Source # | |
Defined in Distribution.Types.InstalledPackageInfo Methods installedDepends :: InstalledPackageInfo -> [UnitId] Source # | |