Safe Haskell | None |
---|---|
Language | Haskell2010 |
Perform a build
- printPlan :: StackM env m => Plan -> m ()
- preFetch :: (StackM env m, HasEnvConfig env) => Plan -> m ()
- executePlan :: (StackM env m, HasEnvConfig env) => EnvOverride -> BuildOptsCLI -> BaseConfigOpts -> [LocalPackage] -> [DumpPackage () () ()] -> [DumpPackage () () ()] -> [DumpPackage () () ()] -> InstalledMap -> Map PackageName SimpleTarget -> Plan -> m ()
- data ExecuteEnv m
- withExecuteEnv :: forall env m a. (StackM env m, HasEnvConfig env) => EnvOverride -> BuildOpts -> BuildOptsCLI -> BaseConfigOpts -> [LocalPackage] -> [DumpPackage () () ()] -> [DumpPackage () () ()] -> [DumpPackage () () ()] -> (ExecuteEnv m -> m a) -> m a
- withSingleContext :: forall env m a. (StackM env m, HasEnvConfig env) => (m () -> IO ()) -> ActionContext -> ExecuteEnv m -> Task -> Maybe (Map PackageIdentifier GhcPkgId) -> Maybe String -> (Package -> Path Abs File -> Path Abs Dir -> (ExcludeTHLoading -> [String] -> m ()) -> (Text -> m ()) -> Bool -> Maybe (Path Abs File, Handle) -> m a) -> m a
- data ExcludeTHLoading
Documentation
printPlan :: StackM env m => Plan -> m () Source #
Print a description of build plan for human consumption.
preFetch :: (StackM env m, HasEnvConfig env) => Plan -> m () Source #
Fetch the packages necessary for a build, for example in combination with a dry run.
:: (StackM env m, HasEnvConfig env) | |
=> EnvOverride | |
-> BuildOptsCLI | |
-> BaseConfigOpts | |
-> [LocalPackage] | |
-> [DumpPackage () () ()] | global packages |
-> [DumpPackage () () ()] | snapshot packages |
-> [DumpPackage () () ()] | local packages |
-> InstalledMap | |
-> Map PackageName SimpleTarget | |
-> Plan | |
-> m () |
Perform the actual plan
Running Setup.hs
data ExecuteEnv m Source #
:: (StackM env m, HasEnvConfig env) | |
=> EnvOverride | |
-> BuildOpts | |
-> BuildOptsCLI | |
-> BaseConfigOpts | |
-> [LocalPackage] | |
-> [DumpPackage () () ()] | global packages |
-> [DumpPackage () () ()] | snapshot packages |
-> [DumpPackage () () ()] | local packages |
-> (ExecuteEnv m -> m a) | |
-> m a |
Execute a function that takes an ExecuteEnv
.
:: (StackM env m, HasEnvConfig env) | |
=> (m () -> IO ()) | |
-> ActionContext | |
-> ExecuteEnv m | |
-> Task | |
-> Maybe (Map PackageIdentifier GhcPkgId) | All dependencies' package ids to provide to Setup.hs. If Nothing, just provide global and snapshot package databases. |
-> Maybe String | |
-> (Package -> Path Abs File -> Path Abs Dir -> (ExcludeTHLoading -> [String] -> m ()) -> (Text -> m ()) -> Bool -> Maybe (Path Abs File, Handle) -> m a) | |
-> m a |
This sets up a context for executing build steps which need to run Cabal (via a compiled Setup.hs). In particular it does the following:
- Ensures the package exists in the file system, downloading if necessary.
- Opens a log file if the built output shouldn't go to stderr.
- Ensures that either a simple Setup.hs is built, or the package's custom setup is built.
- Provides the user a function with which run the Cabal process.