ghc-parmake-0.1.9: A parallel wrapper for 'ghc --make'.

Safe HaskellSafe
LanguageHaskell98

GHC.ParMake.BuildPlan

Synopsis

Documentation

new :: Settings -> [Dep] -> [FilePath] -> BuildPlan Source #

Create a new BuildPlan from a list of (target, dependency) pairs. This is mostly a copy of Distribution.Client.PackageIndex.dependencyGraph.

ready :: BuildPlan -> [Target] Source #

Get all targets that are ready to be built.

building :: BuildPlan -> [Target] Source #

Return all targets that are currently building.

completed :: BuildPlan -> [Target] Source #

Return all targets that were built successfully.

size :: BuildPlan -> Int Source #

Total number of targets in the BuildPlan.

markCompleted :: BuildPlan -> Target -> BuildPlan Source #

Mark a target as successfully built.

markReadyAsBuilding :: BuildPlan -> BuildPlan Source #

Mark all "ready" targets as "currently building".

numBuilding :: BuildPlan -> Int Source #

How many targets are we building currently?

hasBuilding :: BuildPlan -> Bool Source #

Are there any targets in the "currently building" state?

data BuildPlan Source #

A graph of all dependencies between targets.

data Target Source #

Instances

targetId :: Target -> TargetId Source #

Target (e.g. o)

allDepends :: Target -> [TargetId] Source #

Given a Target, return all its dependencies (internal + external).

source :: Target -> FilePath Source #

Given a Target, return the name of the source file from which it can be produced.

object :: Target -> Maybe FilePath Source #

Given a Target, return the name of the object file produced from it that should be fed to the linker.

objects :: BuildPlan -> [FilePath] Source #

Given a BuildPlan, return the list of object files for all completed targets.