Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
BuildEnv.BuildOne
Description
setupPackage
prepares a package for building, returning instructions
that compile its Setup
script.
buildUnit
computes build instructions to configure, build and install
the unit using its Setup
script. If the unit is a library, the instructions
will also register it into a local package database using ghc-pkg
.
Synopsis
- setupPackage :: Verbosity -> Compiler -> SymbolicPath CWD (Dir Project) -> BuildPaths ForBuild -> PkgDbDir ForBuild -> PkgDir ForPrep -> PkgDir ForBuild -> Map UnitId PlanUnit -> ConfiguredUnit -> IO BuildScript
- buildUnit :: Verbosity -> Compiler -> SymbolicPath CWD (Dir Project) -> BuildPaths ForBuild -> PkgDbDir ForBuild -> PkgDir ForBuild -> UnitArgs -> Map UnitId PlanUnit -> ConfiguredUnit -> BuildScript
- data PkgDir use = PkgDir {
- pkgNameVer :: !String
- pkgDir :: !(SymbolicPath Project (Dir Pkg))
- getPkgDir :: Paths use -> ConfiguredUnit -> PkgDir use
- data family PkgDbDir use
- getPkgDbDirForPrep :: Paths ForPrep -> PkgDbDir ForPrep
- getPkgDbDirForBuild :: Paths ForBuild -> IO (PkgDbDir ForBuild)
Building packages
Arguments
:: Verbosity | |
-> Compiler | |
-> SymbolicPath CWD (Dir Project) | |
-> BuildPaths ForBuild | Overall build directory structure. |
-> PkgDbDir ForBuild | Package database directory (see |
-> PkgDir ForPrep | Package directory (to find the |
-> PkgDir ForBuild | Package directory (to build the |
-> Map UnitId PlanUnit | All dependencies in the build plan. |
-> ConfiguredUnit | The unit to build. |
-> IO BuildScript |
Setup a single package.
Returns a build script which compiles the Setup
script.
Arguments
:: Verbosity | |
-> Compiler | |
-> SymbolicPath CWD (Dir Project) | |
-> BuildPaths ForBuild | Overall build directory structure. |
-> PkgDbDir ForBuild | Package database directory (see |
-> PkgDir ForBuild | This package's directory (see |
-> UnitArgs | Extra arguments for this unit. |
-> Map UnitId PlanUnit | All dependencies in the build plan. |
-> ConfiguredUnit | The unit to build. |
-> BuildScript |
Return build steps to to configure, build and and installing the unit, including registering it in the package database if it is a library.
You can run the build script with executeBuildScript
, or you can
turn it into a shell script with script
.
Note: executing the build script will fail if the unit has already been registered in the package database.
Package directory structure helpers
The package name-version
string and its directory.
Constructors
PkgDir | |
Fields
|
Arguments
:: Paths use | Overall directory structure to base the computation off. |
-> ConfiguredUnit | Any unit from the package in question. |
-> PkgDir use |
Compute the package directory location.
data family PkgDbDir use Source #
The package database directory.
Instances
data PkgDbDir 'ForBuild Source # | |
Defined in BuildEnv.BuildOne data PkgDbDir 'ForBuild = PkgDbDirForBuild {
| |
data PkgDbDir 'ForPrep Source # | |
Defined in BuildEnv.BuildOne |