PackageConfig
Description
Package configuration information: essentially the interface to Cabal, with some utilities
- mkPackageId :: PackageIdentifier -> PackageId
- packageConfigId :: PackageConfig -> PackageId
- type PackageConfig = InstalledPackageInfo_ ModuleName
- data InstalledPackageInfo_ m = InstalledPackageInfo {
- installedPackageId :: InstalledPackageId
- sourcePackageId :: PackageId
- license :: License
- copyright :: String
- maintainer :: String
- author :: String
- stability :: String
- homepage :: String
- pkgUrl :: String
- description :: String
- category :: String
- exposed :: Bool
- exposedModules :: [m]
- hiddenModules :: [m]
- importDirs :: [FilePath]
- libraryDirs :: [FilePath]
- hsLibraries :: [String]
- extraLibraries :: [String]
- extraGHCiLibraries :: [String]
- includeDirs :: [FilePath]
- includes :: [String]
- depends :: [InstalledPackageId]
- hugsOptions :: [String]
- ccOptions :: [String]
- ldOptions :: [String]
- frameworkDirs :: [FilePath]
- frameworks :: [String]
- haddockInterfaces :: [FilePath]
- haddockHTMLs :: [FilePath]
- display :: Text a => a -> String
- Version
- data PackageIdentifier = PackageIdentifier {}
- defaultPackageConfig :: PackageConfig
- packageConfigToInstalledPackageInfo :: PackageConfig -> InstalledPackageInfo
- installedPackageInfoToPackageConfig :: InstalledPackageInfo_ String -> PackageConfig
Documentation
Mostly the compiler deals in terms of PackageNames, which don't
have the version suffix. This is so that we don't need to know the
version for the -package-name flag, or know the versions of
wired-in packages like base & rts. Versions are confined to the
package sub-system.
This means that in theory you could have multiple base packages installed
(for example), and switch between them using -package/-hide-package.
PackageId
mkPackageId :: PackageIdentifier -> PackageId
Turn a Cabal PackageIdentifier into a GHC PackageId
packageConfigId :: PackageConfig -> PackageId
Get the GHC PackageId right out of a Cabalish PackageConfig
The PackageConfig type: information about a package
data InstalledPackageInfo_ m Source
Constructors
| InstalledPackageInfo | |
Fields
| |
data PackageIdentifier Source
The name and version of a package.
Constructors
| PackageIdentifier | |
Fields
| |
packageConfigToInstalledPackageInfo :: PackageConfig -> InstalledPackageInfo
Turn a PackageConfig, which contains GHC ModuleNames into a Cabal specific
InstalledPackageInfo which contains Cabal ModuleNames
installedPackageInfoToPackageConfig :: InstalledPackageInfo_ String -> PackageConfig
Turn an InstalledPackageInfo, which contains Cabal ModuleNames
into a GHC specific PackageConfig which contains GHC ModuleNames