| Cabal-1.8.0.6: A framework for packaging Haskell software | Contents | Index

Distribution.Simple.LocalBuildInfo

Portability | portable
Maintainer | cabal-devel@haskell.org

Contents

Installation directories
Deprecated

Description

Once a package has been configured we have resolved conditionals and dependencies, configured the compiler and other needed external programs. The `LocalBuildInfo` is used to hold all this information. It holds the install dirs, the compiler, the exact package dependencies, the configured programs, the package database to use and a bunch of miscellaneous configure flags. It gets saved and reloaded from a file (`dist/setup-config`). It gets passed in to very many subsequent build actions.

Synopsis

data LocalBuildInfo = LocalBuildInfo {

installDirTemplates :: InstallDirTemplates
compiler :: Compiler
buildDir :: FilePath
scratchDir :: FilePath
libraryConfig :: Maybe ComponentLocalBuildInfo
executableConfigs :: [(String, ComponentLocalBuildInfo)]
installedPkgs :: PackageIndex
pkgDescrFile :: Maybe FilePath
localPkgDescr :: PackageDescription
withPrograms :: ProgramConfiguration
withPackageDB :: PackageDBStack
withVanillaLib :: Bool
withProfLib :: Bool
withSharedLib :: Bool
withProfExe :: Bool
withOptimization :: OptimisationLevel
withGHCiLib :: Bool
splitObjs :: Bool
stripExes :: Bool
progPrefix :: PathTemplate
progSuffix :: PathTemplate

}

externalPackageDeps :: LocalBuildInfo -> [(InstalledPackageId, PackageId)]
withLibLBI :: PackageDescription -> LocalBuildInfo -> (Library -> ComponentLocalBuildInfo -> IO ()) -> IO ()
withExeLBI :: PackageDescription -> LocalBuildInfo -> (Executable -> ComponentLocalBuildInfo -> IO ()) -> IO ()

data ComponentLocalBuildInfo = ComponentLocalBuildInfo {

componentPackageDeps :: [(InstalledPackageId, PackageId)]

}

module Distribution.Simple.InstallDirs
absoluteInstallDirs :: PackageDescription -> LocalBuildInfo -> CopyDest -> InstallDirs FilePath
prefixRelativeInstallDirs :: PackageId -> LocalBuildInfo -> InstallDirs (Maybe FilePath)
substPathTemplate :: PackageId -> LocalBuildInfo -> PathTemplate -> FilePath
packageDeps :: LocalBuildInfo -> [PackageId]

Documentation
data LocalBuildInfo

Data cached after configuration step. See also Distribution.Setup.ConfigFlags.
Constructors

LocalBuildInfo |

installDirTemplates :: InstallDirTemplates | The installation directories for the various differnt kinds of files
compiler :: Compiler | The compiler we're building with
buildDir :: FilePath | Where to build the package.
scratchDir :: FilePath | Where to put the result of the Hugs build.
libraryConfig :: Maybe ComponentLocalBuildInfo |
executableConfigs :: [(String, ComponentLocalBuildInfo)] |
installedPkgs :: PackageIndex | All the info about all installed packages.
pkgDescrFile :: Maybe FilePath | the filename containing the .cabal file, if available
localPkgDescr :: PackageDescription | The resolved package description, that does not contain any conditionals.
withPrograms :: ProgramConfiguration | Location and args for all programs
withPackageDB :: PackageDBStack | What package database to use, global/user
withVanillaLib :: Bool | Whether to build normal libs.
withProfLib :: Bool | Whether to build profiling versions of libs.
withSharedLib :: Bool | Whether to build shared versions of libs.
withProfExe :: Bool | Whether to build executables for profiling.
withOptimization :: OptimisationLevel | Whether to build with optimization (if available).
withGHCiLib :: Bool | Whether to build libs suitable for use with GHCi.
splitObjs :: Bool | Use -split-objs with GHC, if available
stripExes :: Bool | Whether to strip executables during install
progPrefix :: PathTemplate | Prefix to be prepended to installed executables
progSuffix :: PathTemplate | Suffix to be appended to installed executables

Instances

Read LocalBuildInfo
Show LocalBuildInfo

externalPackageDeps :: LocalBuildInfo -> [(InstalledPackageId, PackageId)]
External package dependencies for the package as a whole, the union of the individual targetPackageDeps.
withLibLBI :: PackageDescription -> LocalBuildInfo -> (Library -> ComponentLocalBuildInfo -> IO ()) -> IO ()
If the package description has a library section, call the given function with the library build info as argument. Extended version of `withLib` that also gives corresponding build info.
withExeLBI :: PackageDescription -> LocalBuildInfo -> (Executable -> ComponentLocalBuildInfo -> IO ()) -> IO ()
Perform the action on each buildable `Executable` in the package description. Extended version of `withExe` that also gives corresponding build info.
data ComponentLocalBuildInfo

Constructors

ComponentLocalBuildInfo |

componentPackageDeps :: [(InstalledPackageId, PackageId)] | Resolved internal and external package dependencies for this component. The BuildInfo specifies a set of build dependencies that must be satisfied in terms of version ranges. This field fixes those dependencies to the specific versions available on this machine for this compiler.

Instances

Read ComponentLocalBuildInfo
Show ComponentLocalBuildInfo

Installation directories
module Distribution.Simple.InstallDirs
absoluteInstallDirs :: PackageDescription -> LocalBuildInfo -> CopyDest -> InstallDirs FilePath
See `absoluteInstallDirs`
prefixRelativeInstallDirs :: PackageId -> LocalBuildInfo -> InstallDirs (Maybe FilePath)
See `prefixRelativeInstallDirs`
substPathTemplate :: PackageId -> LocalBuildInfo -> PathTemplate -> FilePath
Deprecated
packageDeps :: LocalBuildInfo -> [PackageId]
Produced by Haddock version 2.6.1