Copyright | Isaac Jones 2003-2004 |
---|---|
License | BSD3 |
Maintainer | cabal-devel@haskell.org |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
This module deals with registering and unregistering packages. There are a
couple ways it can do this, one is to do it directly. Another is to generate
a script that can be run later to do it. The idea here being that the user
is shielded from the details of what command to use for package registration
for a particular compiler. In practice this aspect was not especially
popular so we also provide a way to simply generate the package registration
file which then must be manually passed to ghc-pkg
. It is possible to
generate registration information for where the package is to be installed,
or alternatively to register the package in place in the build tree. The
latter is occasionally handy, and will become more important when we try to
build multi-package systems.
This module does not delegate anything to the per-compiler modules but just mixes it all in this module, which is rather unsatisfactory. The script generation and the unregister feature are not well used or tested.
Synopsis
- register :: PackageDescription -> LocalBuildInfo -> RegisterFlags -> IO ()
- unregister :: PackageDescription -> LocalBuildInfo -> RegisterFlags -> IO ()
- internalPackageDBPath :: LocalBuildInfo -> SymbolicPath Pkg ('Dir Dist) -> SymbolicPath Pkg ('Dir PkgDB)
- initPackageDB :: Verbosity -> Compiler -> ProgramDb -> FilePath -> IO ()
- doesPackageDBExist :: FilePath -> IO Bool
- createPackageDB :: Verbosity -> Compiler -> ProgramDb -> Bool -> FilePath -> IO ()
- deletePackageDB :: FilePath -> IO ()
- abiHash :: Verbosity -> PackageDescription -> SymbolicPath Pkg ('Dir Dist) -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO AbiHash
- invokeHcPkg :: Verbosity -> Compiler -> ProgramDb -> Maybe (SymbolicPath CWD ('Dir Pkg)) -> PackageDBStack -> [String] -> IO ()
- registerPackage :: Verbosity -> Compiler -> ProgramDb -> Maybe (SymbolicPath CWD ('Dir from)) -> PackageDBStackS from -> InstalledPackageInfo -> RegisterOptions -> IO ()
- data RegisterOptions = RegisterOptions {}
- defaultRegisterOptions :: RegisterOptions
- generateRegistrationInfo :: Verbosity -> PackageDescription -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo -> Bool -> Bool -> SymbolicPath Pkg ('Dir Dist) -> PackageDB -> IO InstalledPackageInfo
- inplaceInstalledPackageInfo :: AbsolutePath ('Dir Pkg) -> SymbolicPath Pkg ('Dir Dist) -> PackageDescription -> AbiHash -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo -> InstalledPackageInfo
- absoluteInstalledPackageInfo :: PackageDescription -> AbiHash -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo -> InstalledPackageInfo
- generalInstalledPackageInfo :: ([FilePath] -> [FilePath]) -> PackageDescription -> AbiHash -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo -> InstallDirs FilePath -> InstalledPackageInfo
Documentation
:: PackageDescription | |
-> LocalBuildInfo | |
-> RegisterFlags | Install in the user's database?; verbose |
-> IO () |
unregister :: PackageDescription -> LocalBuildInfo -> RegisterFlags -> IO () Source #
internalPackageDBPath :: LocalBuildInfo -> SymbolicPath Pkg ('Dir Dist) -> SymbolicPath Pkg ('Dir PkgDB) Source #
createPackageDB :: Verbosity -> Compiler -> ProgramDb -> Bool -> FilePath -> IO () Source #
Create an empty package DB at the specified location.
deletePackageDB :: FilePath -> IO () Source #
abiHash :: Verbosity -> PackageDescription -> SymbolicPath Pkg ('Dir Dist) -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO AbiHash Source #
Compute the AbiHash
of a library that we built inplace.
invokeHcPkg :: Verbosity -> Compiler -> ProgramDb -> Maybe (SymbolicPath CWD ('Dir Pkg)) -> PackageDBStack -> [String] -> IO () Source #
Run hc-pkg
using a given package DB stack, directly forwarding the
provided command-line arguments to it.
registerPackage :: Verbosity -> Compiler -> ProgramDb -> Maybe (SymbolicPath CWD ('Dir from)) -> PackageDBStackS from -> InstalledPackageInfo -> RegisterOptions -> IO () Source #
data RegisterOptions Source #
Additional variations in the behaviour for register
.
RegisterOptions | |
|
defaultRegisterOptions :: RegisterOptions Source #
Defaults are True
, False
and False
generateRegistrationInfo :: Verbosity -> PackageDescription -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo -> Bool -> Bool -> SymbolicPath Pkg ('Dir Dist) -> PackageDB -> IO InstalledPackageInfo Source #
inplaceInstalledPackageInfo Source #
:: AbsolutePath ('Dir Pkg) | |
-> SymbolicPath Pkg ('Dir Dist) | location of the dist tree |
-> PackageDescription | |
-> AbiHash | |
-> Library | |
-> LocalBuildInfo | |
-> ComponentLocalBuildInfo | |
-> InstalledPackageInfo |
Construct InstalledPackageInfo
for a library that is in place in the
build tree.
This function knows about the layout of in place packages.
absoluteInstalledPackageInfo :: PackageDescription -> AbiHash -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo -> InstalledPackageInfo Source #
Construct InstalledPackageInfo
for the final install location of a
library package.
This function knows about the layout of installed packages.
generalInstalledPackageInfo Source #
:: ([FilePath] -> [FilePath]) | Translate relative include dir paths to absolute paths. |
-> PackageDescription | |
-> AbiHash | |
-> Library | |
-> LocalBuildInfo | |
-> ComponentLocalBuildInfo | |
-> InstallDirs FilePath | |
-> InstalledPackageInfo |
Construct InstalledPackageInfo
for a library in a package, given a set
of installation directories.