Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Configuration options for build-env
Synopsis
- data BuildStrategy
- = Execute RunStrategy
- | Script {
- scriptPath :: !FilePath
- useVariables :: !Bool
- data RunStrategy
- data AsyncSem
- semDescription :: AsyncSem -> Text
- type Args = [String]
- data UnitArgs = UnitArgs {
- configureArgs :: !Args
- mbHaddockArgs :: !(Maybe Args)
- registerArgs :: !Args
- data Compiler = Compiler {
- ghcPath :: !FilePath
- ghcPkgPath :: !FilePath
- data Cabal = Cabal {
- cabalPath :: !FilePath
- globalCabalArgs :: !Args
- data Paths use = Paths {
- fetchDir :: !FilePath
- buildPaths :: BuildPaths use
- data family BuildPaths use
- data PathUsability
- canonicalizePaths :: Compiler -> BuildStrategy -> Paths Raw -> IO (Paths ForPrep, Paths ForBuild)
- data TempDirPermanence
- newtype Verbosity where
- quietMsg :: Verbosity -> Text -> IO ()
- normalMsg :: Verbosity -> Text -> IO ()
- verboseMsg :: Verbosity -> Text -> IO ()
- debugMsg :: Verbosity -> Text -> IO ()
- ghcVerbosity :: Verbosity -> String
- ghcPkgVerbosity :: Verbosity -> String
- cabalVerbosity :: Verbosity -> String
- setupVerbosity :: Verbosity -> String
- data Counter = Counter {
- counterRef :: !(IORef Word)
- counterMax :: !Word
- data Style
- hostStyle :: Style
- pATHSeparator :: Style -> String
Build strategy
data BuildStrategy Source #
Build strategy for buildPlan
.
Execute RunStrategy | Execute the build plan in-place. |
Script | Output a build script that can be run later. |
|
Instances
Show BuildStrategy Source # | |
Defined in BuildEnv.Config showsPrec :: Int -> BuildStrategy -> ShowS # show :: BuildStrategy -> String # showList :: [BuildStrategy] -> ShowS # |
data RunStrategy Source #
How to execute a build plan.
TopoSort | Topologically sort the cabal build plan, and build the packages in sequence. |
Async | Asynchronously build all the packages, with each package waiting on its dependencies. |
|
Instances
Show RunStrategy Source # | |
Defined in BuildEnv.Config showsPrec :: Int -> RunStrategy -> ShowS # show :: RunStrategy -> String # showList :: [RunStrategy] -> ShowS # |
What kind of semaphore to use in buildPlan
?
NB: this datatype depends on whether the jsem
flag
was enabled when building the build-env
package.
semDescription :: AsyncSem -> Text Source #
A description of the kind of semaphore we are using to control concurrency.
Passing arguments
Arguments specific to a unit.
UnitArgs | |
|
ghc
and cabal-install
executables
Paths to the ghc
and ghc-pkg
executables.
Compiler | |
|
Path to the cabal-install
executable.
Cabal | |
|
Directory structure
The directory structure relevant to preparing and carrying out a build plan.
Paths | |
|
data family BuildPaths use Source #
The directory structure relevant to executing a build plan.
Instances
data BuildPaths 'ForBuild Source # | |
Defined in BuildEnv.Config | |
data BuildPaths 'ForPrep Source # | |
Defined in BuildEnv.Config | |
data BuildPaths 'Raw Source # | |
Defined in BuildEnv.Config |
data PathUsability Source #
The appropriate stage at which to use a filepath.
canonicalizePaths :: Compiler -> BuildStrategy -> Paths Raw -> IO (Paths ForPrep, Paths ForBuild) Source #
Canonicalise raw Paths
, computing the appropriate directory structure
for preparing and executing a build, respectively.
Handling of temporary directories
data TempDirPermanence Source #
How to handle deletion of temporary directories.
Instances
Show TempDirPermanence Source # | |
Defined in BuildEnv.Config showsPrec :: Int -> TempDirPermanence -> ShowS # show :: TempDirPermanence -> String # showList :: [TempDirPermanence] -> ShowS # |
Logging verbosity
Verbosity level for the build-env
package.
The default verbosity level is Normal
(1).
pattern Quiet :: Verbosity | |
pattern Normal :: Verbosity | |
pattern Verbose :: Verbosity | |
pattern Debug :: Verbosity |
ghcVerbosity :: Verbosity -> String Source #
ghcPkgVerbosity :: Verbosity -> String Source #
cabalVerbosity :: Verbosity -> String Source #
setupVerbosity :: Verbosity -> String Source #
Reporting progress
A counter to measure progress, as units are compiled.
Counter | |
|
OS specifics
Whether to use Posix or Windows style:
- for executables,
./prog
vsprog.exe
, - for the path separator,
:
vs;
.
pATHSeparator :: Style -> String Source #
OS-dependent separator for the PATH environment variable.