|
Distribution.PackageDescription | Portability | portable | Stability | alpha | Maintainer | Isaac Jones <ijones@syntaxpolice.org> |
|
|
|
|
|
Description |
Package description and parsing.
|
|
Synopsis |
|
|
|
|
Package descriptions
|
|
data PackageDescription |
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 | | package :: PackageIdentifier | | license :: License | | licenseFile :: FilePath | | copyright :: String | | maintainer :: String | | author :: String | | stability :: String | | testedWith :: [(CompilerFlavor, VersionRange)] | | homepage :: String | | pkgUrl :: String | | synopsis :: String | A one-line summary of this package
| description :: String | A more verbose description of this package
| category :: String | | buildDepends :: [Dependency] | | descCabalVersion :: VersionRange | If this package depends on a specific version of Cabal, give that here.
components
| library :: (Maybe Library) | | executables :: [Executable] | | dataFiles :: [FilePath] | | extraSrcFiles :: [FilePath] | | extraTmpFiles :: [FilePath] | |
|
| Instances | |
|
|
emptyPackageDescription :: PackageDescription |
|
data StanzaField a |
Constructors | StanzaField | | fieldName :: String | | fieldGet :: (a -> Doc) | | fieldSet :: (LineNo -> String -> a -> ParseResult a) | |
|
|
|
|
type LineNo = Int |
|
basicStanzaFields :: [StanzaField PackageDescription] |
|
setupMessage :: String -> PackageDescription -> IO () |
|
data Library |
Constructors | Library | | exposedModules :: [String] | | libBuildInfo :: BuildInfo | |
|
| Instances | |
|
|
withLib :: PackageDescription -> a -> (Library -> IO a) -> IO a |
If the package description has a library section, call the given
function with the library build info as argument.
|
|
hasLibs :: PackageDescription -> Bool |
does this package have any libraries?
|
|
libModules :: PackageDescription -> [String] |
Get all the module names from the libraries in this package
|
|
data Executable |
Constructors | | Instances | |
|
|
withExe :: PackageDescription -> (Executable -> IO a) -> IO () |
Perform the action on each buildable Executable in the package
description.
|
|
exeModules :: PackageDescription -> [String] |
Get all the module names from the exes in this package
|
|
Build information
|
|
data BuildInfo |
Constructors | BuildInfo | | buildable :: Bool | component is buildable here
| ccOptions :: [String] | options for C compiler
| ldOptions :: [String] | options for linker
| frameworks :: [String] | support frameworks for Mac OS X
| cSources :: [FilePath] | | hsSourceDirs :: [FilePath] | where to look for the haskell module hierarchy
| otherModules :: [String] | non-exposed or non-main modules
| extensions :: [Extension] | | extraLibs :: [String] | what libraries to link with when compiling a program that uses your package
| extraLibDirs :: [String] | | includeDirs :: [FilePath] | directories to find .h files
| includes :: [FilePath] | The .h files to be found in includeDirs
| options :: [(CompilerFlavor, [String])] | | ghcProfOptions :: [String] | |
|
| Instances | |
|
|
emptyBuildInfo :: BuildInfo |
|
Supplementary build information
|
|
type HookedBuildInfo = (Maybe BuildInfo, [(String, BuildInfo)]) |
|
emptyHookedBuildInfo :: HookedBuildInfo |
|
updatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription |
Update the given package description with the output from the
pre-hooks.
|
|
Utilities
|
|
data ParseResult a |
Constructors | | Instances | |
|
|
data PError |
Instances | |
|
|
showError :: PError -> String |
|
hcOptions :: CompilerFlavor -> [(CompilerFlavor, [String])] -> [String] |
Select options for a particular Haskell compiler.
|
|
autogenModuleName :: PackageDescription -> String |
The name of the auto-generated module associated with a package
|
|
Produced by Haddock version 0.7 |