Copyright | (c) Duncan Coutts 2012 |
---|---|
License | BSD-like |
Maintainer | duncan@community.haskell.org |
Safe Haskell | None |
Language | Haskell98 |
Handling for user-specified build targets
- data BuildTarget
- readBuildTargets :: PackageDescription -> [String] -> IO [BuildTarget]
- showBuildTarget :: QualLevel -> PackageId -> BuildTarget -> String
- data QualLevel
- buildTargetComponentName :: BuildTarget -> ComponentName
- data UserBuildTarget
- readUserBuildTargets :: [String] -> ([UserBuildTargetProblem], [UserBuildTarget])
- showUserBuildTarget :: UserBuildTarget -> String
- data UserBuildTargetProblem = UserBuildTargetUnrecognised String
- reportUserBuildTargetProblems :: [UserBuildTargetProblem] -> IO ()
- resolveBuildTargets :: PackageDescription -> [(UserBuildTarget, Bool)] -> ([BuildTargetProblem], [BuildTarget])
- data BuildTargetProblem
- reportBuildTargetProblems :: [BuildTargetProblem] -> IO ()
Build targets
data BuildTarget Source
A fully resolved build target.
BuildTargetComponent ComponentName | A specific component |
BuildTargetModule ComponentName ModuleName | A specific module within a specific component. |
BuildTargetFile ComponentName FilePath | A specific file within a specific component. |
Eq BuildTarget | |
Show BuildTarget | |
Generic BuildTarget | |
Binary BuildTarget | |
type Rep BuildTarget = D1 (MetaData "BuildTarget" "Distribution.Simple.BuildTarget" "Cabal-1.23.1.0" False) ((:+:) (C1 (MetaCons "BuildTargetComponent" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ComponentName))) ((:+:) (C1 (MetaCons "BuildTargetModule" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ComponentName)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ModuleName)))) (C1 (MetaCons "BuildTargetFile" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ComponentName)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath)))))) |
readBuildTargets :: PackageDescription -> [String] -> IO [BuildTarget] Source
Read a list of user-supplied build target strings and resolve them to
BuildTarget
s according to a PackageDescription
. If there are problems
with any of the targets e.g. they don't exist or are misformatted, throw an
IOException
.
showBuildTarget :: QualLevel -> PackageId -> BuildTarget -> String Source
Parsing user build targets
data UserBuildTarget Source
Various ways that a user may specify a build target.
readUserBuildTargets :: [String] -> ([UserBuildTargetProblem], [UserBuildTarget]) Source
Resolving build targets
resolveBuildTargets :: PackageDescription -> [(UserBuildTarget, Bool)] -> ([BuildTargetProblem], [BuildTarget]) Source
Given a bunch of user-specified targets, try to resolve what it is they refer to.
data BuildTargetProblem Source
BuildTargetExpected UserBuildTarget [String] String |
|
BuildTargetNoSuch UserBuildTarget [(String, String)] |
|
BuildTargetAmbiguous UserBuildTarget [(UserBuildTarget, BuildTarget)] |
reportBuildTargetProblems :: [BuildTargetProblem] -> IO () Source