Handling for user-specified build targets
- data BuildTarget
- readBuildTargets :: PackageDescription -> [String] -> IO [BuildTarget]
- data UserBuildTarget
- readUserBuildTargets :: [String] -> ([UserBuildTargetProblem], [UserBuildTarget])
- data UserBuildTargetProblem = UserBuildTargetUnrecognised String
- reportUserBuildTargetProblems :: [UserBuildTargetProblem] -> IO ()
- resolveBuildTargets :: PackageDescription -> [(UserBuildTarget, Bool)] -> ([BuildTargetProblem], [BuildTarget])
- data BuildTargetProblem
- reportBuildTargetProblems :: [BuildTargetProblem] -> IO ()
A fully resolved build target.
A specific component
|BuildTargetModule ComponentName ModuleName|
A specific module within a specific component.
|BuildTargetFile ComponentName FilePath|
A specific file within a specific component.
Parsing user build targets
Various ways that a user may specify a build target.
Resolving build targets
Given a bunch of user-specified targets, try to resolve what it is they refer to.
|BuildTargetExpected UserBuildTarget [String] String|
|BuildTargetNoSuch UserBuildTarget [(String, String)]|
|BuildTargetAmbigious UserBuildTarget [(UserBuildTarget, BuildTarget)]|